Systems and methods to facilitate searches of communication references

ABSTRACT

Methods and apparatuses to facilitate searches of communication references for real time communication connections. One embodiment includes: one or more web servers to assign a communication reference to an advisor for distribution by the advisor in one or more documents, to associate at least one keyword with the communication reference, to receive from the advisor a bid price on the keyword associated with the communication reference, and to present the communication reference selected based at least in part on the bid price in response to a search related to the keyword; a session border controller to interface with a packet switched network; and one or more telecommunication servers to determine contact information of the advisor based on the communication reference used by a customer to request a communication connection to the advisor, and to connect the customer to the advisor for real time communications using the determined contact information.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the priority from Provisional U.S. PatentApplication Ser. No. 60/915,914, filed May 3, 2007 and entitled “Systemsand Methods to Facilitate Searches of Communication References,” thedisclosure of which is hereby incorporated herein by reference.

The present application is a related to U.S. patent application Ser. No.11/329,459, filed Jan. 10, 2006 and entitled “Systems and Methods toProvide Availability Indication,” and U.S. patent application Ser. No.11/696,151, filed Apr. 3, 2007 and entitled “Systems and Methods toFacilitate Searches,” which claims the priority from Provisional U.S.Patent Application Ser No. 60/888,876, filed Feb. 8, 2007 and entitled“Systems and Methods to Facilitate Searches.” The disclosures of theabove applications are hereby incorporated herein by reference.

TECHNOLOGY FIELD

At least some embodiments of the disclosure relate to user interfacetechniques to assist people to connect for real-time communication, suchas connecting people for telephonic conversation, chat, documentsharing, screen-sharing, etc.

BACKGROUND

Internet, cellular communication systems, television, newspaper, etc.,provide diverse communication media channels through which people mayreceive information and/or communicate with each other.

People may use a web site to chronologically publish personal thoughtsand web links. Such a web site may be referred to as a blog. A blog mayinclude content showing what is happening in the life of the person,collecting information on certain types of subjects of interest to theperson, providing links to related web sites, etc. Thus, a personal website may include a collection of contents that may be helpful to peopleof similar interest.

Telephone systems allow users to conduct real time two-way voicecommunication. Traditional land-line based telephone systems connect onetelephone set to another through one or more switching centers, operatedby one or more telephone companies, over a land-line based telephonenetwork. Traditionally, a telephone connection is based on a circuitswitched network.

Current telephone systems may also use a packet-switched network for atelephone connection. A packet switched network is typical in a computerdata environment. Recent developments in the field of Voice over IP(VoIP) allow the delivery of voice information using the InternetProtocol, in which voice information is packaged in a digital form indiscrete packets rather than in the traditional circuit-committedprotocols of the public switched telephone network (PSTN).

Cellular networks allow a cellular phone to connect to a nearby cellularbase station through an air interface for wireless access to a telephonenetwork. Recent developments in wireless telephone systems allow notonly voice communications but also data communications. For example,cellular phones can now receive and send short messages through a ShortMessage Service (SMS). Web pages can now be retrieved through wirelesscellular links and displayed on cellular phones. Wireless ApplicationProtocol (WAP) has been developed to overcome the constraints ofrelatively slow and intermittent nature of wireless links to accessinformation similar or identical to World Wide Web.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure is illustrated by way of example and not limitation inthe figures of the accompanying drawings in which like referencesindicate similar elements.

FIG. 1 illustrates a system according to one embodiment.

FIG. 2 illustrates a user interface to create a listing according to oneembodiment.

FIG. 3 illustrates a user interface to start a communication accordingto one embodiment.

FIG. 4 illustrates a user interface to display the status of acommunication connection process and to provide the user guidancethrough the process according to one embodiment.

FIGS. 5-12 show examples of flow diagrams of a process to connect a userand an adviser for communication according to one embodiment.

FIG. 13 illustrates a method to display a call button according to oneembodiment.

FIG. 14 illustrates a method to monitor and control a connectionaccording to one embodiment.

FIG. 15 shows a diagram of a system to assist and track connectionsaccording to one embodiment.

FIG. 16 shows a block diagram example of a data processing system whichmay be used with various embodiments.

FIG. 17 shows a diagram of a system to collect directory informationaccording to one embodiment.

FIG. 18 illustrates statistic data collected to facilitate searchesaccording to one embodiment.

FIG. 19 illustrates a method to facilitate searches according to oneembodiment.

FIG. 20 illustrates an example to facilitate searches according to oneembodiment.

FIG. 21 shows a system including a connection server configured on apacket switched network according to one embodiment.

FIG. 22 shows a connection server according to one embodiment.

FIG. 23 shows a diagram of a system to facilitate searches according toone embodiment.

FIG. 24 shows a method to facilitate the search of communicationreferences according to one embodiment.

DETAILED DESCRIPTION

The following description and drawings are illustrative and are not tobe construed as limiting. Numerous specific details are described toprovide a thorough understanding. However, in certain instances, wellknown or conventional details are not described in order to avoidobscuring the description. References to one or an embodiment in thepresent disclosure can be, but not necessarily are, references to thesame embodiment; and, such references mean at least one.

In one embodiment, a system is to provide services to people who wish tomake connections for real time communication, such as live telephoneconversation, chat, video conferencing, instant messaging, and otherforms of real time communications.

For example, benefits of the services may include anonymity for one ormore of the parties of the real time communication. For example, theservice can connect the caller and callee without revealing the contactinformation of one party to another, such as the actual telephonenumber. The services may include filtering callers/participants so thatonly those who are willing to pay can get connected. The services mayinclude collecting payments for the callee so that the callee can earnmoney from talking to the callers over the phone without the burden ofmanaging payment collection, etc. The services may include scheduling sothat the real time communication is initiated at a convenient time(e.g., no night calls). The services may include queue managing to serveboth the callees and the callers. The services may include providing thecool, convenient click-to-call functionality to attract callers for thecallees.

In one embodiment, the services may include providing a persistent andconsistent way to reach people. For example, a web link, or a toll-freenumber, or a local phone number can be provided by the system so thatthe callers can reach the callee using the web link, or the toll-freenumber, or the local phone number even after the telephone of the calleehas been changed. The callee can publish the web link and/or the phonenumber, knowing that the calls will follow if the callee updates thetelephone number in the system. The callees do not need to reveal theiractual telephone numbers to the potential callers. If desired, thecallee can keep the caller from knowing the actual telephone number ofthe callee for anonymity.

In general, the service may provide any combination of the benefitsdiscussed above.

Many examples are presented in the context of telephone connection forreal time conversation. Embodiments can also be applied to other realtime communication systems (e.g., text chat, instant messaging,voice/video conferencing, etc.) in a way similar to the telephoneconversation.

FIG. 1 illustrates a system according to one embodiment. As illustratedin FIG. 1, callees who have customers, fans, far-away clients, etc., canmake money talking with them on the phone. The system provides thecallees with services of managing the transactions such that the calleescan sell what they have to say with reduced/minimum efforts on businessaspects. For example, a blogger can earn money from the blog by talkingto the interested readers of the blog.

In one embodiment, the callee can sign up for a call button of thesystem and/or for a phone number provided by the system. The call buttonand/or the assigned phone number can be used as the contact informationof the callee. For example, the callee can publish the call buttonand/or the phone number in a variety of media channels and environments,such as in the blog, in advertisements, in news articles, in columndiscussions, in business cards, etc.

In one embodiment, the callees manage their own distribution of the callbutton and/or the phone number, since the callees may have their uniqueways to reach potential callers (e.g., through blogs, home pages,business cards, etc.). The callees can bring the call button and/or thephone number into the context where the customers of the callees are,such as their own web pages or blogs or business cards (e.g., via aphone number).

Alternative, or in combination, the system may also help the callees toreach callers through presenting the call buttons and/or the phonenumbers in marketplaces, such as online listings of services,advertisements embedded in the search results generated by a searchengine, classified advertisements, etc.

After signing up for the call button and/or the phone number, thecallees can set up their own prices and their own hours for receivingthe calls. When the call button and/or the phone number leads thecallers to callees, the callees can earn money by talking to the callerswithout having to manage scheduling, queue, payment collection, privacy,etc. For example, the callees can enjoy the benefit of anonymityprovided by the system, since the callees do not have to reveal theiractual phone numbers to the potential callers in order to receive calls.The system provides the filtering functionality so that some callers canreach the callees.

In one embodiment, the services of the system are packaged and deliveredthrough the use of a call button and/or a communication reference (suchas a phone number) assigned to the callee. The callees do not have torely upon a marketplace, such as keen.com, to reach callers.

FIG. 2 illustrates a user interface to create a listing according to oneembodiment. In FIG. 2, the callee can specify the rate the callee willcharge the callers when the callers want to talk to the callee.

In one embodiment, the callee may specify the price (rate) in terms of apackage, such as $100 for one hour. A call package has a specified pricefor a given time limit that is longer than one minute (e.g., one hour).Alternatively, the callee may specify the price in terms of a price perunit of time, such as $2 per minute, without specifying a time limit.

In one embodiment, when the rate is specified as a package that includesa time limit (e.g., 60 minutes, two hours, etc.), the callee can furtherspecify the policy for the continuation of the call beyond the timelimit (e.g., $50 per 30 minutes thereafter, or end call, or no longercharge).

In the user interface illustrated in FIG. 2, the callee can specify thephone number (e.g., 415-861-6100) at which the system will call thecallee when a customer wishes to speak to the callee. The phone numberis used by the system to call the callee and make a connection to thecustomer. The phone number of the callee is not provided to callers(customers of the callee) for anonymity.

In one embodiment, the callee may specify a listing name (e.g., for thislisting). The callee may create multiple listings with different rates,phone numbers, etc., in the same account. Optionally, the callee mayfurther provide a description and a photo (e.g., a photo of the callee)for the listing.

In one embodiment, the photo of the listing should be no larger than 70pixels wide by 70 pixels high and should be in either GIF or JPEGformat. Alternatively, the system may automatically convert the imageuploaded from the callee into the appropriate size and format. However,it is understood that other sizes can also be used.

After the listing is created, the callee can select the button“Continue” to access the next screen for getting the call button.

In one embodiment, the web server of the system provides the calleewith: a call button and/or a phone number, such as 1-800-GO-ETHERextension XXXX, after the callee finishes creating the listing. The callbutton and the phone number assigned to the callee are intended for thecallee to place wherever a caller (buyer) will come across them.

For example, a golf pro provides great swing tips. The golf pro as acallee (seller) can put a call button on a blog, on a web page, in thefooter of an email, etc. When people are reading the blog about golfequipment, they might think “I'm really interested in what this personhas to say, I think I'll pay to talk to them live and ask them all myquestions.”

In one embodiment, the call button includes HTML (Hypertext MarkupLanguage) code which contains a reference to the listing and one or morelinks to a server of the system. The HTML code can be inserted into theblog and/or the home page of the callee, or an email. When the HTML codeis rendered in the browser of the caller (e.g., when the caller visitsthe blog or the home page of the callee, or when the caller views anemail from the callee), the browser shows a call button which can beselected (e.g., through “clicking” on the call button using a cursorcontrolling device, such as a mouse, a track ball, a joystick, a touchscreen, etc.) to request a phone connection. An example of theappearance of a call button includes an icon showing a telephone set andthe text “call now”, as illustrated in FIG. 1.

In one embodiment, when the call button is rendered, the appearance ofthe call button may include an icon, which when selected or activatedcan initiated a request for a real time communication connection.

Alternative, the call button can be specified in documents in a formatother than HTML, such as in an extensible markup language (XML).

In one embodiment, the call button can change its state depending on thestate of the caller and/or callee. For instance, if the callee isalready on a phone call with a caller, the button would indicate “busy,”so that a second caller would see that the callee is already on atelephone. Clicking on the button in this instance would give the secondcaller the ability to get in line to talk to the callee. Or, in anotherembodiment, the second caller clicking on the button could give him theability to join the call in progress.

In one embodiment, the call button can change its state depending onwhat the callee explicitly indicates. The callee could, for instance,tell the system, via a web form or telephone IVR, that he is currently“taking calls” or “not taking calls” or “offering video” or “offeringchat” or “taking appointments” or taking “arranged calls” or“callbacks.” He could indicate that he is taking calls and is “by myphone,” indicating a heightened presence. Depending upon each of suchstates, the system would lead callers down different communicationpaths. If a callee is “by my [his/her] phone,” the system might call thecaller first, since it's highly probably that the callee will beavailable for his/her side of the connection. If the callee is simply“taking calls,” the system might call the callee first, since he/shemight be the more unlikely party to be available. Other communicationpaths include getting in line, joining a conference call, turning on avideo connection, scheduling an appointment, entering into a chatsession, etc.

Similarly, the golf pro can use the phone number for various offlinemedia and other media. For example, if the golf pro writes a column forGolf Digest magazine, he can put the phone number that is assigned tohim (e.g., Ether phone number) at the end of the column, such as1-800-GO-ETHER, extension XXXX. The system can even provide him with acustom 800 number, such as 1-800-GOLF-PRO, rather than the extension toa generic 1-800-GO-ETHER number. For example, the column may include thefollowing message: “Call me to talk about your own golf swing. Dial1-800-GOLF-PRO. $100/hour.” Alternatively, the Ether phone number can bea phone number local to a specific region of interest to the golf pro(e.g., having the same area code, or the same area code and exchange, asthose in the target geographical area).

In one embodiment, the callee may request a phone number, such as“1-800-GO-ETHER” extension “YOU”, which is specifically assigned to thecallee (and/or the listing). The callee can publish the assigned phonenumber in the blog, home page, printed publications, brochure, orbusiness card. The phone number may be given out during a TV or radiotalk show, etc. When the assigned phone number is called, the call isfirst connected to a server of the system. The system can then call thecallee and join the caller and the callee for real time communication.

FIG. 3 illustrates a user interface to start a communication accordingto one embodiment. For example, after a caller selects a call button,the user interface as illustrated in FIG. 3 is displayed (e.g., in thebrowser of the caller, or in a pop-up window).

In the example of FIG. 3, a call graphic is displayed to show theprogress of making the connection. In FIG. 3, the photo of the callee(e.g., the photo uploaded by the callee to the server for the listingduring the creation of the listing) is displayed with a link “More aboutme”, which when selected causes the browser to display the descriptionof the listing corresponding to the call button.

In one embodiment, when the photo of the listing is not available, thesystem may present a standard icon to represent the callee.

In FIG. 3, an icon and the description “Your Telephone” are displayed topresent the caller. An “ether” icon between the caller and calleerepresents the system. The link “How this works” under the “ether” iconcan be selected to see the details of the call process, which can behelpful to a user who is not familiar with the system.

The user interface presents an entry to receive a time window (e.g., 4hours) within which the caller is available to take a call back from thesystem to talk to the callee. The user interface also includes an entryto receive the phone number of the caller such that the system can callback the caller to make the connection between the caller and the calleein this time window.

In one embodiment, the user interface can be part of the VoIP clientapplication (e.g., the user interface of a VoIP terminal, such as theuser interface of a VoIP-enable phone, or an application window of aVoIP application running on a computer or a Personal Digital Assistant(PDA)). The VoIP phone connection can be established, whether the userinputs the callback phone number or if the VoIP connection simplyconnects the two parties without the need of a phone number.

In FIG. 3, the user interface includes a button “call now” which whenselected causes the user interface to send the time window and thecallback phone number to a server to request for a phone connection.

In one embodiment, the user interface is part of the VoIP clientapplication which can send the telephonic contact information (e.g., thephone number of the VoIP client application or a user ID of the VoIPsystem) to the server without the user explicitly specifying the callback number.

FIG. 4 illustrates a user interface to display the status of acommunication connection process and to provide the user guidancethrough the process according to one embodiment.

In FIG. 4, the call graphic shows that the phone of the callee is offthe hook, indicating that the callee has accepted the call. The callgraphic shows the icon “Press 1” to instruct the caller to press “1” onthe phone to be connected to the callee.

The user interface further provides text explaining the status andinstruction to the caller.

In one embodiment, before the callee accepts the call, the system callsthe callee, during which the call graphic shows that the phone of thecallee is ringing and the phone of the caller is on the hook, not yetanswered by the callee. The text is provided in the user interface toexplain the current status of the connection process and to instruct theuser to wait while the system is contacting the callee.

Thus, in one embodiment, the system provides the user-friendly,step-by-step feedback and instruction to the caller to guide the callerthrough the connection process.

In one embodiment, after the connection between the caller and callee isestablished, the system further provides feedback and instructions onthe call graphic. For example, during the call the system can providethe accumulated call time for the purchased call. If the purchased callhas a time limit, the call graphic can further show the remainingminutes of the call. When the time limit is approaching (or reached),the call graphic can provide the guidance and instructions for“recharge” (e.g., by purchasing a further package, or switching to a perminute mode with a further time limit, etc.). In one embodiment, theoptions to continue the call when the time limit is approaching (orreached) is displayed in the graphical user interface so that the callermay select an option in the graphical user interface withoutinterrupting the conversation with the callee.

In one embodiment, if a purchased call with a time limit isinterrupted/dropped before the time limit is reached, the caller cancontinue the call by requesting a re-connection with a time window. Tohelp the caller, the call graphic can present the guidance andinstructions for continue the call and present the status of thecontinuation of the call. For example, the call graphic may present adescription of the continuation policy for interrupted/dropped call andshow the remaining portion of the time window to resume the call.

One example scenario of using a call button that is placed in the blog,home page, or email of the callee (seller) is described below.

When the callee (seller) is taking calls, the call button of the callee(seller) says “Call Me.”

When the caller (buyer) clicks on the button, the caller (buyer) is ledto a landing page that explains how the service works and indicates theprice, which might be $100 to talk on the phone for 60 minutes and $1per minute thereafter.

When the caller (buyer) clicks the “Continue” button on the landingpage, the caller (buyer) is brought to a page to specify payment options(e.g., credit card information). Or, if the caller (buyer) is areturning member, the caller (buyer) can sign in (e.g., throughproviding the correct member name and password) to instruct the systemto use the billing information (e.g., credit card and billing address)that is already on file (e.g., that has been previously submitted to thesystem and that is stored in the database of the system in associationwith account of the caller). If the caller (buyer) is not a member, thecaller (buyer) is presented with a page to register with the system andbecome a member. Alternatively, the caller (buyer) may specify thepayment information without becoming a member.

For example, the page may identify the caller (buyer) as a memberaccording to the information provided by a cookie maintained by the webbrowser of the caller (buyer). If the cookie exists, the cookie includesthe member name of the caller (buyer). If the cookie indicates that thecaller (buyer) has already signed in, the server may skip the sign-inprocess; otherwise, the caller (buyer) is prompt to sign in. If thecaller (buyer) is new to the network, the caller (buyer) is asked toregister and become a member.

In one embodiment, the call button/link does not bring the caller(buyer) inside the marketplace (e.g., a list showing competitors).Instead, the actions related to the call button happen in theenvironment of the callee (seller). For example, the web page(s) can bejust a pop-up window so that the caller does not have to leave the webpage (e.g., blog or home page) of the callee (seller). The landing pagemay be within a frame of the blog/home page of the callee, or within anapplet embedded in the blog/home page of the callee.

Alternatively, the call button may bring the caller (buyer) to a VoIPapplication and provide the guidance and instruction to the caller onthe user interface of the VoIP application.

In one embodiment, the VoIP application has browser functionality andshows the call button with the blog, web page or email in the userinterface of the VoIP application.

Alternatively, the call button may bring the caller (buyer) to themarketplace which shows the offers of the competitors of the callee(seller).

In one embodiment, after confirming the payment information, the caller(buyer) is led to a page to specify the phone number that the caller(buyer) would like to be called back at and the time window within whichthe caller (buyer) is willing to receive the call back to talk to thecallee (seller). The time window might be “four hours.” FIG. 3 shows anexample of such a page.

When the caller (buyer) continues (e.g., pressing the button “Call Now”in FIG. 3), the system obtains the authorization to charge an amount,when the call is connected (e.g., $100 from the buyer's credit card, ifthe credit card is the method of payment).

In one embodiment, a call for a package of bulk minutes (e.g., that hasa specified time limit) is charged when the two parties are connected,regardless of whether the duration of the time limit is reached. In oneembodiment, to avoid the difficulty in charging the buyer (e.g., $100)to talk to a seller but the seller fails to call back within the timewindow requested by the buyer, the system does not charge the buyeruntil after a connection between the caller (buyer) and the callee(seller) is successfully established (e.g., for a minimum period oftime, or after the phone call is completed, or after the time limit isreached, etc.).

In one embodiment, the system “pre-authorizes” the charge (e.g., $100)on the buyer's credit card to make sure that, should the connection becompleted, the buyer would be able to pay. In one embodiment, the systemindicates the status of pre-authorization, charging/not-charging to thebuyer in the user interface that guides the user through the process ofmaking the connection.

Alternatively, the system may make the charge (e.g., $100) on thebuyer's credit card when starting to make the connection and make arefund to the buyer if the connection is not successful within the callback time window specified by the caller (buyer). Alternatively, thesystem may charge a portion of the fee (e.g., $100) during the phoneconnection set up period, and refund the charge if the connection is notsuccessful or charge the remaining portion after the connection is madesuccessfully (e.g., after the phone call is completed).

In one embodiment, the system determines whether or not to pre-chargethe buyer based on statistic data, such as the credit history of thecaller (buyer), the success rate of the callee (seller) to call backwithin the time window specified by the caller (buyer), etc. Thus, forexample, if the system determines that the call is likely to beestablished within the time window, the system may pre-charge thecaller; for example, if the system determines that the caller (buyer)has a good credit history, the system may defer the charge to a laterstage (e.g., after the completion of the call).

In one embodiment, after the system determines that the caller (buyer)has a sufficient source to pay for the call, the system calls the callee(seller) and says: “We have a caller who is calling you on your callbutton. He is paying your $100 fee and is willing to wait up to 4 hoursto talk to you. Please press 1 on your telephone keypad if you want totake the call now; press 2 if you can't take it now but can indeed takeit within the next 4 hours that has been requested, or press 3 if youwon't be able to take it within 4 hours.” Note that different system mayassociate different sets of key pressing events (e.g., press 1, press 2,press 3, . . . ) with different options.

In one embodiment, the system can optionally provide the callee (seller)with more information about the caller (buyer) based on pre-recordedinformation. For example, the system can record the self introduction ofthe caller (buyer) (e.g., the name of the caller, for instance ‘Bob’) sothat the system tells the callee “We have ‘Bob’ . . . ” instead of “Wehave a caller . . . ”, where ‘Bob’ is the recording of theself-introduction of the callee (buyer).

In one embodiment, the system has the name of caller (buyer) recorded aspart of the member preference/attribute of the caller (buyer).Alternatively, the system can use a text-to-speech program to “read out”the name of the buyer when introducing the call to the callee (seller).Alternatively, the system can record the name of the caller (buyer) whenthe system receives a call from the caller at the phone number assignedto the callee, or callback the caller first to obtain the recording.

In one embodiment, if the callee (seller) presses 1, the system tellsthe callee (seller) to hold on while the system calls the caller(buyer). The screen of the caller (buyer) is updated automatically toindicate that the callee (seller) is ready and the caller (buyer) isbeing called back for the connection between the caller (buyer) and thecallee (seller).

If the callee (seller) presses 2, the system tells the caller (buyer)(e.g., on the screen of the caller) that the callee (seller) can't takethe call now but expect to take the call within an identified period oftime (e.g., the next 4 hours). The system will arrange to make the phoneconnection within the identified period of time (e.g., the next 4hours).

In one embodiment, the system may use alternative numbers to indicate aresponse of the callee.

For example, the system may send a message (e.g., through email, aweb-based user interface for the callee (seller), a voice mail, aninstant message, etc) to the callee about the call and the identifiedperiod of time (e.g., 4-hour time window) so that the callee (seller)may indicate to the system within the identified period of time (e.g.,next 4 hours) that the callee (seller) is ready for the call.

Alternatively, the system may try to call the callee (seller)periodically or according to a time period specified by the callee(seller). For example, the callee may press 15 after pressing 2 toindicate that system should try to make the connection after 15 minutes.Alternatively, the callee may provide such an indication throughreplying to the email, instant message, short text message, or through anetwork-based user interface (e.g., web-based) that is designed tomanage the user account. For example, the network-based user interfacemay present a list of calls in the queue and the corresponding timewindows. When ready to take the next phone call, the callee can indicateto the system that the callee is currently available to take a call (ora particular one of the calls in the list).

Alternatively, the caller (buyer) may try to call the callee (seller)again within the time window (e.g., next 4 hours).

In one embodiment, the system may monitor the activities related to thiscall to avoid duplicated efforts in making the connection within thetime window (e.g., next 4 hours) so that the caller and callee are notinterrupted by unnecessary attempts to make the connection.

If the callee (seller) presses 3, the system tells the caller (buyer)that the callee (seller) can't take the call within the requested timewindow. The caller (buyer) in this case is not charged the price (e.g.,$100). In one embodiment, the caller (buyer) is charged the price (e.g.,$100) only when the call between the caller (buyer) and callee (seller)is actually connected.

When the system makes the connection between the caller (buyer) andcallee (seller), the system may call the caller (buyer) first or callthe callee (seller) first, or call both at about the same time. Forexample, the system may determine which one of the caller and callee ismore reliable and call the reliable one of the two first. The system maydetermine which of the parties is more reliable based on statistic datacollected from past call connection activities. Alternatively, thesystem may connect to the less reliable party first. Alternatively, thecallee (seller) may specify the preference of who is to be called firstas part of the specification of the listing.

When the caller (buyer) calls the phone number assigned to the callee(assignee) (e.g., 800-GO-ETHER extension 4567), the system may firstauthenticate the caller and/or arrange the payment options and thenprompt the caller to enter the time window and the call back phonenumber using the key pad of the phone. An interactive voice response(IVR) system can be used to interact with the caller so that the callerdoes not need web access to be connected to the callee (seller).

Alternatively, the system may determine automatically the telephonecontact information of the caller from the call received from the caller(buyer) (e.g., through call ID service or an Automatic NumberIdentification (ANI) service) and use the telephone contact informationin calling back. The system may present an option for the caller (buyer)to confirm the automatically detected telephone contact information ofthe caller for calling back so that the caller has an opportunity tospecify different telephone contact information for the call back.

In one embodiment, when the system determines that the caller has agraphical user interface (e.g., web access) while requesting theconnection for the call (e.g., when the caller pushes a button on a webinterface to request the call, or when the caller is signed into thesystem or when the online presence of the caller is detected, or whenthe call is initiated from a VoIP terminal that has a graphicscapability), the system uses the graphical user interface to assist thecaller. When the system fails to detect the online presence of thecaller, the system uses the IVR system to provide the caller (buyer)with guidance. Thus, the system automatically switches between using theweb interface to guide the caller or using the IVR interface to guidethe caller.

In one embodiment, the system may further use other communicationsystems to guide the callee (e.g., according to the presence andavailability of such communication systems). For example, the interfacemay be Wireless Application Protocol based (WAP-based) applications, orbased on instant messaging, or based on a custom designed client-serverapplication/protocol. Thus, a web-based interface is presented as anexample. User interfaces based on other communication protocols and/orother types of communication systems can also be used.

In one embodiment, the system may ask the caller (buyer) to hang uptemporarily until the callee accepts the call. Alternatively, the systemmay allow the caller (buyer) to stay on the line while the systemattempts to reach the callee (seller).

In one embodiment, the system allows the callee (seller) to specify oneor more alternative phone numbers in case the callee (seller) is notreachable at the primary phone number specified for the listing.Similarly, the caller (buyer) may also specify one or more alternativecall back phone numbers. In one embodiment, the system allows theparties to specify other telephonic references (e.g., user names ofInternet telephonic application) to make the telephone connection. Inone embodiment, the system may further allow the user to specify otheridentities to make connections for other types of real timecommunications, such as chat, instant messaging, video conferencing,etc.

In one embodiment, the system arranges the call according to aspects ofthe methods described in the U.S. Patent Application Publication No.2004/0252820 (application Ser. No. 10/360,776, filed on Jun. 12, 2003),which is hereby incorporated herein by reference.

When the caller (buyer) requests the connection using the call button,the web server provides the instructions and feedback to guide thecaller (buyer) through the call process.

When the caller (buyer) dials the callee's listing via the Ether phonenumber (e.g., the 800 number assigned to the callee), an interactivevoice response (IVR) system is used to provide similar instructions andfeedback to guide the caller (buyer) through the call process.

For example, the caller (buyer) registers and creates an identity usingthe phone number and a PIN. A credit card is asked for via IVR or liveoperator to set up payment options. Then the call window is entered onthe keypad of the phone, such as pressing the string of keys “4*” toindicate a “4” hours window or “60#” for a “60” minutes window.

In one embodiment, when the callee is having a telephonic connectionwith the system, the system prompts the caller (buyer) to utter amessage for the callee (seller). For example, the caller (buyer) may say“I'm Bob Stanley—remember we met at the golf conference last weekend.”The system records the messages of the caller (buyer). When the callee(seller) gets the call, the system says, “There's a buyer on the linewho's paid $100 and is willing to wait 4 hours and here's how heidentifies himself: ‘I'm Bob Stanley—remember we met at the golfconference last weekend.’” The system in such a way provides as muchidentifying information to the callee (seller) as possible so that thecallee (seller) may screen the callers for acceptance. In oneembodiment, the system behaves as an automatic secretary, screeningwho's on the line for the callee (seller).

In one embodiment, the system provides functionality for bulk-minutepricing.

For example, once a call starts, the system metes out the time that hasbeen bought. When the time limit, for example, 60 minutes, is up, thesystem tells both parties on the phone that the time is up. The systemthen prompts the buyer to add more money to buy a second package, or goto per minute pricing, or end the call, or let them talk further forfree, according to the continuation policy of the call which isspecified by the callee (seller) in the listing (e.g., specified duringthe creation of the listing).

In one embodiment, if the parties hang up after just, for example, 35,minutes of a 60-minute call, the system has a time window in which itexpires the remaining minutes. The time window can be set quite large,such as a year, so that someone can buy a 1,000-minute discount packageand talk 100 times over the course of the year. Or the time window canbe set small, such as 30 minutes, in which case the caller (buyers) cancall again within the 30-minute window after the 35-minute call to keeptalking based on the already purchased 60-minute package, but the caller(buyers) can be connected on the basis of the unused portion of the60-minute call package after a break that is longer than the timewindow.

In one embodiment, the system time window specifies the longest periodof break before the unused portion of the purchased package expires.

In one embodiment, the system time window specifies the period from thestarting of the conversation and the time when the purchased packageexpires. For example, the system may specify a window of 4 hours or soby default, so that people who get cut off or interrupted can finishtheir calls in this window of time.

In one embodiment, the system time window is based on the size of thepurchased package. The larger the time limit of the package, the largeris the time window. In one embodiment, the expiration of the package isbased on a limit on the separate calls (e.g., three). In one embodiment,the expiration of the package is based on the expiration time window andthe limit on separate calls, whichever is reached first.

In one embodiment, the system allows the callee (seller) to specify theexpiration time window in the specification of the listing (e.g., aspart of the continuation policy of the call package) and/or the limit onthe separate calls.

FIGS. 5-12 show examples of flow diagrams of a process to connect a userand an adviser for telephonic conversation according to one embodiment.

In one embodiment, when a caller selects (e.g., clicks) on a call buttonaccording to one embodiment, the selection (e.g., click) leads downseveral different paths depending on the availability status of theseller.

For example, in FIG. 5, the system determines (201) the current statusof the adviser at the time the telephonic connection is started. In oneembodiment, the current status of the adviser is determined based atleast partially on the information provided by the adviser. For example,the adviser can specify the scheduled hours of the day during which theadviser is expected to take calls; the adviser may select a button(e.g., push through placing a cursor over the button on a display of agraphical user interface and activating a selecting device, such as akey or a button of a cursor positioning device such as a mouse or atouch pad or a joystick, etc.) on a web page, or make a phone call tothe system, to indicate whether the adviser is currently busy and notanswering new calls and/or to further specify the estimated duration ofthe busy period. The adviser may select a button on a user interface(e.g., a web page designed for the management of the listing and/oraccount of the adviser) to indicate that the adviser is now free andready to take calls. The adviser may pick up the phone call from thesystem and indicate to the system the current status of the adviser. Theadviser may transmit the current status information to the system usinginstant messages, email, SMS messages, etc.

If the current status (203) of the adviser is “Taking Calls Now” orsomething equivalent, the system starts (e.g., immediately) a telephoneconnection and tracks the call (205).

If the current status (203) of the adviser is “Taking Calls Shortly”,the system starts (207) to arrange the call to be placed within the timeperiod specified by the caller without trying to call the adviserimmediately, since the adviser is temporary busy and will be availableto take calls within a short period of time.

If the current status (203) of the adviser is “Not Taking Calls for aWhile” or something equivalent, the system starts (209) to make anappointment for the user to call the adviser, since the adviser is notavailable to take the call and will not be available for a longer periodof time.

In FIG. 6, when the system starts to at least initiate a telephoneconnection (e.g., in response to a request from a selected call button),the system displays (301) a landing page to at least initiate atelephone connection and track the call. For example, the web server ofthe system transmits information defining the landing page to the webbrowser of the user to show the landing page (e.g., in a pop-up window).

For example, the landing page may show the name, photo, status, rate ofthe adviser, show/explain the process to make the connection, buttons tonavigate the process, option to mail the adviser, etc.

Optionally, the system alerts (303) the adviser about the request fortelephone conversation (e.g., through a web-based user interface, orthrough email, instant messaging, short text message, etc.)

The system determines whether the user has been authenticated (305). Ifthe user has not been authenticated, the system authenticates (307) theuser. For example, the system signs in the user if the user is already amember, or registers the user as a new member if the user is not yet amember.

The system then determines (309) a source of payment for the call.

After the system has identified a source of payment for the call basedon the price for the call specified by the adviser in the listing, thesystem may further determine if the adviser is still having the statusof “Taking Calls Now”. In certain instances, the process ofauthenticating the user and securing the source of payment may take anextended period of time such that the availability status of the advisermay have changed.

If the adviser is no longer available for immediate connection, thesystem proceeds (317) according to the current status of the adviser,based on whether the current status is “Taking Calls Shortly” or “NotTaking Calls for a While”.

If the adviser is still available for immediate connection, the systemdisplays (313) a call setup page. The call setup page may show theprogress of call and user interface elements to receive the time windowand the phone number of the user (caller).

Once the time window within which the user (caller) is available for thecall and the call back phone number of the user is received, the systemcalls (315) the adviser.

In FIG. 7, after the system starts (401) to call the adviser, the systemupdates (403) the call setup page. For example, the system may play ananimation and/or sound clip and/or a text message to indicate that thesystem is calling the adviser, in one embodiment.

Then, the system determines whether or not the adviser answered the call(405).

If the adviser failed to answer the call, the system sends (407) a mailto the adviser about the unanswered call. The system notifies (409) theuser that the adviser did not answer the call and a mail has been sentto the adviser. The system then presents (411) the user with the optionof making an appointment with the adviser.

If the adviser answered the call, the system obtains the adviser'schoice (413) on the call.

The adviser may indicate that the adviser will take the call in the timewindow specified by the caller, in which case, the system notifies (415)the user that the adviser will take the call in the time window. Then,the system waits (417) for a period of time to call the adviser again.Alternatively, the system may try the connection based on an indicationfrom the adviser that the adviser is ready to take the call (e.g., bycalling the system, selecting a button or a link on a web page in theaccount of the adviser, sending an email/instant message/short textmessage to the system or replying to a message from the system about thecall, etc.)

The adviser may indicate that the adviser cannot take the call in thetime window specified by the caller, in which case, the system notifies(421) the user (caller) that the adviser is not able to take the calland presents (423) the user with the options of updating the time windowand making an appointment.

The adviser may indicate that the adviser wants to take the call now, inwhich case, the system notifies (421) the user that the adviser isconnected and the server is now calling the user (at which point of theprocess, the caller may or may not one the phone). The system thendetermines if the user is already on the line (433).

If the user is not already on the line, the system starts (435) to callthe user and determines whether the user answered the call (437).

If the user did not answer the call back, the system terminates (443)the call (443) and the adviser is notified.

After the user answers the call back, the user is on one line and theadviser on another line. The system then prompts (439) the user toaccept the charge of the call before connection to the adviser anddetermines whether the user accepts the charge (441).

If the user accepts the charge, the system connects (449) the user tothe adviser (e.g., by joining the calls) and starts to monitor aspectsof the call (e.g., duration) and charge the user.

If the user rejects the charge or fails to provide a response within apredetermined period of time, the system terminates (443) call. Afterthe termination of the call, the system updates (445) the user interfaceto show the reason for the termination. Optionally, the system mails(447) the user about the termination of the call.

In FIG. 8, the system displays (501) a landing page, if the adviser'sstatus is “Not Taking Calls for a While”. The landing page may show thename, photo, status, rate of the adviser, and show the process to reachthe adviser, buttons to navigate the process, explanation ofavailability, etc.

Optionally, the system alerts (503) the adviser about the request fortelephone conversation.

In one embodiment, the system receives (505) from the landing page theuser selection whether to mail (e.g., email or use other types ofmessaging systems) the adviser or to make an appointment with theadviser.

If the user selection (507) is to mail the adviser, the systemdetermines if the user has been authenticated (509). If the user has notbeen authenticated, the system authenticates (515) the user. Forexample, if there is no cookie in the web browser of the user indicatingthat the user is currently in a valid session, the user may be presentedwith an interface to sign in or to register.

If the authenticated user chooses to mail the adviser, the systempresents (511) a page to receive the subject and message of the mailfrom the user. After receiving the subject and message of the mail, thesystem sends (513) the mail to the adviser (without showing the mailingaddress of the adviser to the user and without showing the mailingaddress of the user to the adviser) in accordance with one embodiment.

In one embodiment, the mail is delivered electronically (e.g., throughan email, instant message, SMS message, web mail). Alternatively, themail may be delivered as voice mail, print out, etc.

If the user selection (507) is to make an appointment, the system starts(517) to make an appointment.

In FIG. 9, the system displays (601) a landing page for making anappointment. The landing page may display one or more of the name,photo, status, rate of the adviser, and show stages of operations tomake the appointment, buttons to navigate through the stages ofoperations, show the option to mail the adviser, etc.

The system displays (603) entries to receive a requested appointmenttime. The entries can be part of the landing page or a page displayedafter a navigation button is selected. In one embodiment, the entriesare used to receive one or more of the date, start time, time length ofthe appointment, the time zone of the user, etc.

In one embodiment, the system further displays existing schedules andthe phone number of the user, etc. for the convenience of the user(e.g., if the user is already authenticated at this point of theprocess).

After the requested time of the appointment is received from the user,the system determines if the adviser is available at the requested time(605). If the adviser is not available at the requested time, the systemprompts (607) the user to adjust the appointment time; otherwise, thesystem proceeds to the task of filtering the callers.

If the system determines that the user has not been authenticated (609),the system authenticates (611) the user through signing in the user orregistering the user. The system then determines (613) if a sufficientsource of payment for the call is available from the user.

If there is a sufficient source of payment for the call, the systemaccepts the appointment and displays (615) a page to confirm theappointment. The confirmation page may show confirmation text includingthe appointment time and the name of the adviser.

In one embodiment, after the appointment is made, the systemautomatically starts to make connections to the caller and the calleeseparately at the requested time of the appointment. Alternatively, thesystem may reserve a time slot on the schedule of the callee on behalfof the caller and request the caller to make a request for a connectionat the scheduled time. Alternatively, the system may request the adviser(callee) to make the request for the connection. For example, the systemmay determine a less reliable one of the two to make a request for theconnection, or contacting the less reliable one first, during theappointment time is reached before starting to contact the other party.

In FIG. 10, the system displays (601) a landing page for arranging acall. The landing page may display one or more of the name, photo,status, rate of the adviser, show stages of operations to make theappointment, buttons to navigate through the stages, show the option tomail the adviser.

The system receives (703) a user selection of whether to accept acallback, to make an appointment, or both.

If the user selection includes making an appointment, operation 707 oroperation 709 is performed to set up an appointment (e.g., according tothe process illustrated in FIG. 9).

If the user selection includes accepting a callback, the system receives(711) user input to identify the user and the call back phone number ofthe user and determines whether the user has been authenticated (713).If the user has not yet been authenticated, the system authenticates(715) the user (e.g., through signing in the user or registering theuser).

After the user is authenticated, the system determines (717) if asufficient source of payment for the call is available (e.g., to filterout non-serious callers). The system then displays a page to confirm thearrangement (e.g., confirmation text including the time window and thename of the adviser).

FIG. 11 shows an example to authenticate the user. In FIG. 11, after thesystem starts (801) to authenticate the user, the system determines(803) if there is information to indicate that the user is a member. Theinformation may be in a cookie in the browser of the user, or aparameter encoded in an URL (universal resource locator) of a link, or aparameter in an applet running in the web browser.

If the user is a member (805), the system displays (811) a sign-in pagewhich may include entries to receive a username and a password from theuser. In one embodiment, the sign-in page may optionally further includethe photo of the adviser, text alerting the user about the connection tothe adviser, the rate to talk to the adviser, etc. Thus, the sign-inappears to be in the environment of the adviser. The system thenauthenticates (813) the user using the username and password received inthe sign-in page.

If the user is not a member (805), the system displays (807) aregistration page. The registration page may include information alreadycollected about the user (e.g., during the interaction before theregistration) for confirmation purpose. The registration page includesentries to receive username and password of the user. In one embodiment,the registration page may optionally further include the photo of theadviser, text alerting the user about the connection to the adviser, therate to talk to the adviser, etc. Thus, the registration appears to bein the environment of the adviser. The system then creates (809) anaccount for the user using the information received from theregistration page.

In one embodiment, after the user is authenticated, information iscreated to indicate that the user is authenticated for a valid session(e.g., using a cookie, a parameter in URL or in an applet) until thesession expires or the user signs off.

FIG. 12 shows an example to determine if a sufficient source of paymentof the call is available.

After the system starts (821) to determine if a sufficient source ofpayment for the call is available, the system determines (823) whetherthe call is charged by per interval (e.g., per minute). If the call ischarged by per interval, the system determines (825) the minimum chargefor the call (e.g., for one minute). If the call is not charged by perinterval, the system determines (827) the price for a call package(e.g., $100 for 1 hour, as specified by the adviser).

The system then determines whether there is enough money in the accountof the user (829) and/or whether there is an active credit card of theuser is on file (839 and 831).

If the account of the user has enough money for the call and/or anactive credit card of the user is not on file, the system optionallyrequests (841) for the credit card information and the associatedbilling address for security reason.

If the account of the user does not have enough money for the call, thesystem will pre-authorize (837) an amount according the requirement ofthe call for deposit purpose. If an active credit card of the user is onfile, the system optionally presents (833) an option to update thecredit card information. If no active credit card of the user is onfile, the system requests (835) credit card information and billingaddress for pre-authorization.

In one embodiment, when information identifying the user is available(e.g., through a “cookie” implemented in the web browser or parametersencoded in the URL, or parameters stored in the variables of an appletrunning in the web browser, etc.), the system uses the information aboutthe user to help the user. For example, from the member informationdatabase, the system may retrieve the phone numbers of the user. Ifthere are multiple phone numbers for the user, a combo box is displayedfor the user to select one from the known phone numbers of the user (orto type in a different one). If there is only one known phone number ofthe user, the system may display the known phone number of the user inan entry box as the default value.

If a user as identified by the information (e.g., cookie) is differentfrom the current user, the current user can choose to edit theinformation and/or sign in as a different user.

In one embodiment, a user can enter the input information to set up acall, such as the call window and/or the callback phone number beforethe user is authenticated. When the user is subsequently authenticated(e.g., through signing in as an existing member or registering as a newmember), the information provided by the user before the authenticationprocess is used to update the account information (if changed).

FIG. 13 illustrates a method to display a call button according to oneembodiment.

In one embodiment, the appearance of a call button is displayedaccording to the current availability status of the adviser to take thecall.

For example, in FIG. 13, when the system receives (851) a request todisplay a call button of an adviser, the system determines (853) thecurrent status of the adviser (at the time of the request). After thesystem determines (855) an appearance of the call button of the adviserto indicate the status of the adviser, the system presents (857) thecall button of the adviser with the appearance to indicate the status ofthe adviser.

In one embodiment, the system further determines (859) (e.g.,periodically) the current status of the adviser to update (861) theappearance of the button according the currently status of the adviser.

For example, the call button to be inserted in the blog of the calleecan include an image at a URL on a server computer. When being requestedthe URL causes the server computer to determine a response based on theparameters encoded in the URL. For example, the URL can be pointing to aCGI (Common Gateway Interface) program which provides or generates theimage according to the current status of the adviser. The URL mayinclude a parameter to identify the adviser and/or the advertisement.

For example, when the current status of the adviser is “Taking CallsNow”, the call button may show a telephone with text “Call Now”; whenthe current status of the adviser is “Taking Calls Shortly”, the callbutton may show an off-hook telephone with text “Arrange a Call”; whenthe current status of the adviser is “Not Taking Calls for a While”, thecall button may show a telephone and a calendar with text “Appointment”.

In one embodiment, different types of availability status of a callee(adviser) includes: on call, off call, busy, get in line, schedule anappointment, join conference, etc. It is understood that differentsystems may implement more or less types of availability status of acallee. Further, the call button may include other current statusinformation about the callee, such as price, how many people are in lineto call the callee, the schedule of the callee, and/or others.

In one embodiment, the call button is implemented using an appletrunning in the browser of the user. The applet displays the call buttonaccording to the current status of the adviser and checks the status ofthe adviser periodically to update the appearance of the button. In oneembodiment, when an estimated time until which the adviser can take thecall is available (e.g., received in the system from the adviser whenthe system attempts to contact the adviser, or provided by the adviserwhen the adviser is talking to a different user, etc.), the call buttonalso shows an indication of such an estimated time to help the user inselecting a time window.

Alternatively, the call button may be implemented in custom applications(e.g., as plug-in to web browsers, email clients, etc., or asstand-along applications). The call button may communicate with theserver using a special purpose protocol.

In one embodiment, a web/email (document) authoring tool is designed toautomatically detect the phone number of the callee in a webpage/email/document. The authoring tool can be set up to replace thephone number of the callee with the corresponding call button assignedto the callee and/or the phone number (e.g., ether phone number) that isassigned to the callee. For example, the authoring tool can detect theoccurrence of the phone number of the callee in the document and promptthe user of the authoring tool to replace the phone number of the calleewith the call button and/or the phone number assigned by the system. Ifthe user accepts the suggestion, the authoring tool automaticallyreplace the phone number of the callee with the call button and/or thephone number assigned by the system.

FIG. 14 illustrates a method to monitor and control a connectionaccording to one embodiment.

In FIG. 14, after the system connects (871) a user to an adviser, thesystem determines (875) whether the current call is within a time windowof a previously purchased call package (e.g., a year or 4 hours).

In one embodiment, a call is considered a continuation of the previouslypurchased call package if the current call is within the time window.Thus, if the call of a previously purchased call package is interrupted,the user can continue the call within the time window without having topurchase another package.

Based on whether or not the current call is the continuation of aprevious call (877), the system determines (879) the time limitaccording to the previously purchased call package, or determines (881)the purchased minutes of the call package for the current call. Thesystem then monitors (883) the call until the time limit for the currentcall is reached. When the time limit for the call is reached, the systemalerts (885) the user and the adviser about the end of the time limit.

In one embodiment, the continuation policy specified by the adviser isretrieved (887) to process the call at the end of the time limit.

If the continuation policy (889) is “purchase a further package”, thesystem prompts (891) the user to purchase the next package to remainconnected. For example, the user may be offered to continue the call atthe price of $50 for another 30 minutes.

If the continuation policy (889) is “continue at a per minute price”,the system prompts (895) the user to accept the continuation at the perminute price.

If the continuation policy (889) is “no longer charge”, the systemmaintains (897) the connection for the user and the adviser until atleast one of the user and the adviser hangs up.

If the continuation policy (889) is “end call”, the system disconnects(893) the user and the adviser after altering the user and the adviser.

In one embodiment, the system stores a replication of the policy of thepackage the user purchased with the records of the purchased call (e.g.,the policy at the time the call button is selected for the call package,or at the time the user is first connected to the adviser for the callpackage, or at the time the user explicitly confirms the purchase of thecall package, etc.). Thus, the adviser is free to change the listing forthe future callers even before the users finish the purchased callpackages without retroactively affecting the purchased calls.

Some of the above examples are in the context of telephonicconversations. From this description, it will be understood that thetechniques for connecting people for real time communications can alsobe applied to other types of communications, such as video and othermultimedia channels, chat, instant messaging, document sharing, orscreen-sharing, common “whiteboarding,” interactive TV or internet TV,etc. Each of different multimedia channels can have different prices orbe inclusive in one price (e.g., the use of part or all of the differentchannels can be included in the same price).

The real time communication may be on a one-to-one basis (e.g., onecaller connected to one callee). The real time communication can also bein the form of one-to-many. For example, the seller may be hosting aconference in which multiple callers may attend. For example, 100 peoplecan be in the same call or the same video session provided by the sameseller.

Further, in one embodiment, the real time communication may includeaccess to recorded sessions (e.g., recorded audio content and/orrecorded video content).

Thus, the system on the whole may be used as a filter for sellers(callees), only letting in calls from people who are serious—they'reserious because they have entered their credit card and are willing topay. Celebrities can use the system. For example, people want to talk tothe Oakland A's from the 70's, who are sitting on their porches thesedays. For example, Hollywood executives can use the system to hearpitches from scriptwriters who are willing to pay $1000 for the chanceto pitch their script.

In one embodiment, these call buttons and the Ether phone numbers go towhere the action is happening. In at least one embodiment, it isrecognized that not all service commerce will happen throughmarketplaces, such as keen.com or a search engine. People who want totalk to the Oakland A's players are more likely the visitor of the website www.oaklandathletics.com—and that's where the call buttons can bevery effective. And the Ether phone numbers can be in magazines,underneath photographs, in newspapers, on business cards, etc.

In one embodiment, the current status of the callee (e.g., availability,schedule, etc.) and guidance and instructions for the phone connectionare provided through the appearance of the call button and the contentof the call graphic. Alternatively or in combination, the statusinformation, guidance and instructions can also be presented based usingan interactive voice response (IVR) system.

For example, a talk radio station may have a guest on every day at anoon talk show. After the one-hour show, the radio announcer may say,“The time is up on our show. We've enjoyed talking with Dr. Webber andanswering your calls. If you'd like to talk further with Dr. Webber, goto our website at WKBR.com and set up a conversation with him. Or, justdial the number 1-800-TALK-KBR and get in line. It's just $29 per10-minute conversation.”

In this example scenario, the phone number 1-800-TALK-KBR is assigned toDr. Webber, which can be used to achieve many of the same goals as thecall button assigned to Dr. Webber. While the button can visuallycommunicate to the user the current (e.g., real-time) availability ofthe callee, the price, how many people are in line already, the scheduleof the callee, etc., telephony prompts on a interactive voice response(IVR) system can also be used to provide such information after thecaller dials the phone number that is assigned to the callee.

For example, in one embodiment, after a caller dials the phone number1-800-TALK-KBR, the call is connected to a server, which determines thatthe call is for Dr. Webber since the phone number 1-800-TALK-KBR isassigned to (associated with) Dr. Webber. The server can then determinethe current status of Dr. Webber, including the availability status, theprice for the package, etc., and provide the information to the callerthrough the IVR system. In one embodiment, the server prompts optionsaccording to the current availability status of Dr. Webber. For example,the server may offer an immediate connection when Dr. Webber isavailable for immediate talk, or an opportunity to input a callback timewindow and/or callback phone number when Dr. Webber is expected to beavailable in a short period of time, or an opportunity to schedule anappointment with Dr. Webber when Dr. Webber is not expected to beavailable in a short period of time, etc. The server may use the IVRsystem to inform the caller the current status of the connection processand to provide instructions to the caller to take actions, such asproviding a callback time window, providing an appointment time,providing an indication to accept the price of the call package, etc.

In one embodiment, the status information, instruction and guidance areprovided using a combination of graphical presentations (e.g., over agraphical user interface terminal) and voice prompts (e.g., through anIVR system).

In one embodiment, the callee (seller) charges the caller(s) for thereal time communication. The system provides the service to arrange andconnect the call. The system can collect the payment from the caller(s),deduct a portion of the payment as fees to provide the service, anddeliver the remaining payment to the callee (seller).

Alternatively, the callers may be not required to pay for the call; andthe callee (e.g., advertisers) may pay the system for the service. Inthis case, the system may not provide the filtering functionality basedon the willingness of the callers to pay. However, the callees (e.g.,the advertisers) can still enjoy other benefits from the serviceprovided by the system, such as call scheduling (no night calls), callqueuing, toll-free number, local phone number, click-to-call, etc.

In one embodiment, the call buttons and the phone numbers assigned tothe callees can also be published in advertisements in marketplaces,online or offline, on behalf of the callees; the callees bid for chancesof the publicity and pay the bid amount on a per call basis for callsgenerated by the advertisements. When the callees generate the phonelead from their own media channel, the callees are only charged for aflat fee for the service of making the connection. Thus, in oneembodiment, the system tracks the media channels that lead the caller tomake the call.

FIG. 15 shows a diagram of a system to assist and track connectionsaccording to one embodiment.

In FIG. 15, a database (921) may contain the phone numbers of targetphone A (931), target phone B (933), . . . , target phone X (939), etc.,of callees. Typically, the target phones belong to the institutions,businesses, individuals, etc, which seek for the services ofembodiments.

The call button and/or phone numbers assigned to the callees aredistributed in various media channels, such as media channel A (901)(e.g., web server), media channel B (902) (e.g., WAP server), mediachannel C (903) (e.g., short messaging service center), media channel D(904) (e.g., custom server), media channel E (907) (e.g., cabletelevision), media channel E (908) (e.g., news press), media channel G(909) (e.g., radio station), etc.

In one embodiment, the call buttons and/or the assigned phone numbers,which can be considered as the encoded phone numbers of the callees, arepresented in the environment specific to the callees, not in themarketplaces that are specially designed to advertise the callees. Thus,the callees generate the phone leads on their own media distributions,such as their web site or blog site.

Alternatively, or in combination, the call buttons and/or the assignedphone numbers can also be presented in marketplaces, such as inlistings/directories of services, advertisements in search results, etc.

In one embodiment, the phone numbers of the target phones are notdirectly publicized over the media channels. Instead, encoded targetphone numbers (923) are used. Using the encoded target phone numbers(923), a user cannot reach target phones directly. Using the encodedtarget phone numbers (923), a user reaches a server of the system first,which allows the system to provide various services before actuallyconnecting the user to the callee, such as filtering, paymentprocessing, etc.

The encoded target phone numbers (923) allow the association ofadditional information with the target phone numbers, such as the mediachannels used, special promotions, etc.

The encoded target phone numbers and/or the call buttons are deliveredwith content information (e.g., web page, WAP page, short message,television programs, news articles, advertisement, blog, etc.) to userdevices, such as user device A (911) (e.g., cellular phone), user deviceB (912) (e.g., personal digital assistant (PDA)), user device C (913)(e.g., computer), user device D (916) (e.g., receiver), user device E(918) (e.g., newspaper).

In one embodiment, a user device can include a USB phone, a Bluetoothwireless phone, or one or more speakers or headphones with one ormicrophones for the implementation of a software based phone.

In one embodiment, the user devices/phones support one or more real timecommunication capabilities, such as VoIP using Session InitiationProtocol (SIP) which may support video and instant-messagingapplications, IP phone, regular phone over VoIP service, Bluetoothwireless phone, USB phone, software based phone, and other forms of IPtelephony.

In one embodiment, the user device can include a television set toreceive the advertisement. Further, the television set may have thecapability to accept user input so that the television content may bechanged according to the user input (e.g., interactive television, webtelevision, internet television, etc.), or be coupled with a set top boxwhich has such capability. The user input may be provided to the contentprovider through the same communication channel in which the televisioncontent/programs are delivered (e.g., a cable system of a cabletelevision system), or a separate channel (e.g., a phone line, anInternet connection, etc.). The user input may include a request to makea connection to an advertiser featured in an advertisement presented ina television program, such as a request for a telephonic connection tothe advertiser.

In one embodiment, the user devices are mobile devices, such as PDA,cellular phone, etc. The user devices obtain content information,including advertisements, through wireless communication connections,such as cellular communication links, wireless access points forwireless local area network, etc.

In one embodiment, a user device (e.g., a cellular phone, a computer, aPDA) can receive content information from multiple types of mediachannels (e.g., a web server, a WAP server, an SMSC, etc.).

In one embodiment, a user device is capable of dialing a phone call(e.g., automatically according to the encoded phone number embedded inthe content information when a user selects the number). Alternatively,a user may manually dial a phone call using a separate phone, such asuser phone S (917) or user phone T (919).

In one embodiment, a user device (e.g., 911, 912, 913) is capable ofrendering the call button and sending a message to the communicationserver(s) (929) when the call button is activated. The call buttonincludes an identifier of the callee so that when the call button isactivated the user devices communicate the identifier of the callee tothe server(s) (929).

In one embodiment, the user device (e.g., 911) is further capable ofautomatically identifying a phone number of the caller, or a VoIPidentifier of the caller, as a callback number. Alternatively, the userdevice (e.g., 911, 912, 913) is capable of communicating with theserver(s) (929) to present user interfaces to receive the callbacknumber and other parameters, such as the callback time window.

In one embodiment, dialing at least a portion of an encoded target phonenumber connects the phone call to a phone decoder and router (925)first. According to the encoded target phone number dialed, the phonedecoder and router (925) determines the corresponding target phonenumber using the database (921) and connects the phone call to thecorresponding target phone (e.g., one of target phones 931-939) throughthe telephone network (927).

Note the telephone network (927) may be circuit switched, packageswitched, or partially circuit switched and partially package switched.For example, the telephone network may partially use the Internet tocarry the phone call (e.g., through VoIP). For example, the connectionbetween the user phone/device and the phone decoder and router (925) maybe carried using VoIP; and the connection between the phone decoder androuter (925) may be carried using a land-line based, circuit switchedtelephone network.

In one embodiment, the information associated with the encoded targetphone number, such as the media channel used to provide the encodedtarget phone number to the users, is also decoded/retrieved using thedatabase (921). Thus, the information associated with the encoded targetphone number can be tracked/stored.

In one embodiment, the phone decoder and router (925) also determinesthe phone number of the user through Automatic Number Identification(ANI). ANI is a phone system feature that provides the billing number ofthe person making the phone call.

The information about the caller, target phone number, the media channelused for delivering the contact information to the user can be used tobill the caller and/or the target phone number, and providecredit/compensation for the corresponding media channel.

For example, the connection to target phone numbers can be paid for on apay per call basis. Monitoring and tracking the calls can be used forbilling the callee and/or the caller.

In one embodiment, the additional information associated with theencoded target phone number is used to tracking phone calls forconditional promotions, electronic coupons, etc. Alternatively, theadditional information for conditional promotions, electronic coupons,etc. are retrieved from the database of the listings at the time thecorresponding call button is activated or presented, or at the time theencoded phone number is called.

The information about the media channels that are responsible forleading the users to the phone calls to the target phones can also beuseful for the advisers. The advisers may wish to know which mediachannel is more effective in reaching users.

In one embodiment, an encoded target phone number has the same number ofdigits as a standard phone number (e.g., a typical telephone numberassigned by a telephone company). Thus, dialing the encoded target phonenumber is as easy as dialing the target phone number; and dialing thetarget phone number reaches the phone decoder and router (925). In suchan arrangement, a large number of encoded phone numbers are generallyrequired to differentiate the different target phones and differentmedia channels.

In one embodiment, an encoded target phone number has more digits than astandard phone number (e.g., having an extension to the standard phonenumber). A first portion of the encoded target phone number has the samenumber of digits as a standard phone number to reach the phone decoderand router (925) through the telephone network (927); and a secondportion of the encoded target phone number (e.g., the extension) is tobe decoded by the phone decoder and router (925). For example, the DualTone Multi-Frequency (DTMF) decoder can be installed in the phonedecoder and router (925) to detect the second portion of the encodedtarget phone number dialed at the user phone. The detected phone numbercan then be used to recover the target phone number.

In one embodiment, a single telephone number is used to reach the phonedecoder and router (925) for different target phone numbers; and theportion of the encoded target phone number that is used to reach thephone decoder and router (925) is not used in determining theinformation associated with the encoded target phone number.

Alternatively, multiple telephone numbers can be used to reach the phonedecoder and router (925); and the entire encoded target phone number canbe used to determine the information associated with the encoded targetphone number.

In one embodiment, the encoded target phone numbers can have differentnumbers of digits. The callees may be arranged to bid for shorterencoded target phone numbers.

In one embodiment, a look-up table approach is used to encode theinformation. For example, the database (921) keeps track of theinformation about the media channel and the target phone number (andother information, if any) for the encoded target phone number so thatthe encoded target phone number can be used as a key to retrieve thecorresponding information. Thus, it is not necessary to have apredetermined structure to encode the information about the mediachannels and the target phone number.

Alternatively, algorithms can be used to generate and encode targetphone number and associated information. For example, a predeterminedalgorithm may be used to encode different information in the targetphone number. For example, the target phone number may include a numberof field separated by “*” or “#”. Each of the field can be decodedseparately (e.g., from a separate look up table or a mapping algorithm)to determine the target phone number, identity of the media channel,etc.

For example, a set of parameters can be mapped from a string ofcharacters to a string of numerical digits as a part of the encodedtarget phone number; and the string of numbers can be mapped back intothe string of characters at the phone decoder and router (925). Whensuch a mapping scheme is used, a look up table is not necessary. Forexample, an encoded target phone number may include a first portion thatis the phone number of the phone decoder and router (925), a secondportion that is the target phone number appended with other parameters.To prevent revealing the target phone number and the parameters, anencryption/scrambling scheme can be used to encode the second portion,which is decoded at the phone decoder and router (925).

In one embodiment, the phone decoder and router (925) determines thetarget phone number from the encoded target phone number dialed by theuser and then dials the target phone number for the user and joins thephone calls so that the user can talk to the target phone.

In one embodiment, the communication server(s) (929) determines thetarget phone number from the message sent from the user devices when thecall button is pressed.

In one embodiment, users dial the encoded target phone numbers manually.A user can dial the encoded target phone number regardless the userdevice used and the media channel used.

Alternatively, in one embodiment, user devices can automatically dialthe encoded target phone numbers. For example, a cellular phone, acomputer or a PDA can dial a phone number using a Dual ToneMulti-Frequency (DTMF) generator. In one embodiment, the encoded targetphone numbers are presented in the content information in a format suchthat when the user selects the phone number the user device (e.g., acellular phone or a computer) dials the encoded target phone number forthe user. The user selection may be in the form of a keyboard/keypadinput, a touch pad input, a track ball input, a mouse input, a voicecommand, etc.

In one embodiment, the user device initiates the phone call through aVoIP system when the user selects the encoded target phone number.Alternatively, the system initiates the VoIP connection to the userdevice after receiving the message from the user device requesting thephone connection.

In one embodiment, the user device dials the phone number for the userwithout the user manually press the sequence of the encoded target phonenumbers. This greatly simplifies the process of make the phone call.Since a user device can dial a long sequence of number easily, a largenumber of digits can be used to encode the information withoutpresenting any difficulties for the users.

In one embodiment, the encoded target phone numbers are formatted sothat the user device dials a first portion of the encoded target phonenumbers to access the phone decoder and router (925), pauses for a shortperiod of time for the phone decoder and router (925) to prepare forreceiving the second portion of the encoded target phone numbers, andthen dials the second portion of the encoded target phone numbers. Thus,the user device provides a user-friendly way of dialing the encodedtarget phone numbers; and, making the phone call can be as easy asmaking a “click” to access a web page.

In FIG. 15, the user device initiates the phone call. Alternatively, aphone router may be used to initiate phone calls both to the user device(or a separate user phone) and the target phone and then join the phonecalls to connect the user to the target phone. For example, when theuser selects the call button, the encoded target phone number istransmitted to the communication server(s) (929), which can instruct thephone decoder and router (925) to initiate the phone calls.

The user phone number can be automatically determined through ANI, orthrough a user preference setting, or through an entry submitted withthe selection of the encoded target phone number (e.g., the callbutton).

In one embodiment, the selection of the encoded target phone number istransmitted to the corresponding media channel, which forwards therequest for making the phone call to a server (e.g., a web server)connected to the phone router. Alternatively, the content informationcan be formatted so that the selection is sent directly to the serverthat is connected to the phone router.

When the router starts the phone calls, the encoded target phone numbercan also include alphabetic characters (and/or other characters). Theserver and/or the phone router can decode the encoded target phonenumber to recover/retrieve the target phone number and other associatedinformation, such as the identity of the media channel that iscreditable for providing the encoded target phone number to user.

In one embodiment, the user devices/phones support one or more real timecommunication capabilities, such as VoIP using Session InitiationProtocol (SIP) which may support video and instant-messagingapplications, IP phone, regular phone over VoIP service, Bluetoothwireless phone, USB phone, software based phone, and other forms of IPtelephony.

In one embodiment, referring Uniform Resource Locators (URLs) for callbuttons embedded in web pages are used to collect directory informationand statistic data, which can be used to facilitate searches of callbuttons and/or callees.

When a browser follows a link that is embedded a web page to visit a newpage, the browser can submit the request for the new page together witha referring URL. The referring URL is the URL of the web page thatcontains the link which when selected leads the browser to the new page.

In one embodiment, a link or icon that is selectable to request aconnection to a callee, via a callback to the requester by a connectionprovider, is provided by the connection provider for distribution. Forexample, the callee can present such a link or icon in the blog of thecallee and/or in other web sites. When the link or icon is selected by auser in a browser, the browser visits a web page of the connectionprovider to set up a callback to the requester. Since the referring URLof the request is also received from the browser, the connectionprovider can associate the URL of the web page with the link or icon.Thus, directory information on which web pages contains links or iconsassigned to the callees can be obtained after the callees receive callsfrom the users who visited the corresponding web pages and used thelinks or icons.

Alternatively or in combination, an icon button can be configured torequest information from the web site of the connection provider whenthe icon button is rendered in the browser. For example, the icon may beconfigured to show real time availability information (or a price forthe communication time with the callee, or a rating of the callee basedon previous user feedbacks). Such information is obtained from the website of the connection provider for the rendering of the icon. Thereferring URL of such a request can also be used to associate the URL ofthe web page with the callee. Since such requests with thepresentations/downloads of the web page, such requests can be counted totrack the number of presentations/downloads of the web page.

In one embodiment, through collecting the referring URLs, the connectionprovider can establish a database or directory of web pages containingthe links or icons which can be used for requesting connections to thecallees (e.g., via callbacks). Since the links or icons represent thecallees, the database or directory of web pages can be used tofacilitate searches of callees.

For example, the database or directory of web pages can be used tosearch for communication contact points (e.g., the links or iconsassigned to the callees) based on whether the web pages match a searchcriterion of a search request. Such web pages typically contains moreinformation related to the callees than what the callees might provideto the connection provider in obtaining the assigned links or icons; andthe links to the web pages can be used to provide detailed informationabout the callees and/or what the callees have to offer. Someinformation (e.g., the names of the callees) provided by the callees tothe connection provider should not be revealed or searched for privacyreasons. However, similar information may be available in some of theweb pages for some of the callees, which can be very helpful infacilitating a search. Thus, a search based on the web pages thatcontain the links and icons provides a way to locate the callees in away the callees would feel conformable with, since the callees choose topublish the web pages with the relevant information and the links oricons for reaching the callees.

In one embodiment, the statistics of connections requested orestablished via the web pages are tracked. The statistic data reflectsthe desirability of the connections to the respective callees and/or howsuccessful the web pages are in bringing the web visitors intoinitiating communication connections with the callees. Thus, thestatistic data can be used to rank the web pages in the search result.In one embodiment, the web pages that contain the most used links oricons for requesting connection to the corresponding callees can bepresented with a higher priority than others.

For example, the web pages identified in the search result may begrouped according to callees associated with the links or icons forcallback requests; the callees may be sorted according to the likelihoodof being called in the corresponding web pages (e.g., based on anaverage conversion rate of the web pages for a callee in the searchresult, or the highest conversion rate of the web pages for the calleein the search result, etc.); and, the links to the web pages for a givencallee may be sorted and selectively presented based on the conversionrate or call volume (e.g., the number of call requested or connected viathe web page). Other data related to the usage of the links or icons,such as the frequency calls, the date and time of the last call orpresentation, etc., can also be used to determine the rank of the webpages in the search result.

FIG. 17 shows a diagram of a system to collect directory informationaccording to one embodiment. In FIG. 17, a web page (1001) presented tothe caller (1011) includes a button having a text portion (1005) and animage portion (1003). At least one of the text portion (1005) and theimage portion (1005) can be used to provide an indication of real timeavailability status of the callee (1015) for real time communicationwith the caller (1011). The button includes a communication reference(1031) that is associated with the contact information (1033) of thecallee in the contact data (1017) maintained by the connection provider(1013). When the web page (1001) is rendered in a web browser, therequest for the real time information is sent to the connection provider(1013) together with the communication reference (1031) and thereferring URL (1021). The connection provider (1013) can then storedirectory data (1019), including the referring URL (1021), thecommunication reference (1023), a cached portion (1025) of the web page(1001), and/or statistics (1027) for calls connected to the callee(1015) via the communication reference (1023).

Alternatively or in combination, at least a portion of the directorydata (1019) that associates the referring URL (1021) and thecommunication reference (1023) is recorded after the user selects thebutton (1003 and 1005) to request a connection to the callee (1015) viaa callback. In response to the callback request, the connection provider(1013) can make separate calls to the caller (1011) and the callee(1015) and bridge (or join or conference) the calls to connect thecaller (1011) and the callee (1015).

For example, Ether buttons can be assigned to callees for publication incallees' environment, such as the web sites or blogs of the callees.When the Ether buttons are used, the referring URL of the Ether buttonsare collected to identify the web pages that contain the Ether buttons.The web pages that carry the Ether buttons can be identified based onthe referring URLs, without the need to crawl the web. The web pages canbe associated with the Ether buttons to provide the context of the Etherbuttons and/or detailed information about the callees or the topics ofinterests to the callers and/or the callees. The identified contextinformation can be used to facilitate searches.

For example, such web pages can be fetched to extract keywords for theindexing of the Ether buttons. When the search term is received from auser, the search term can be matched to the keywords extracted from theweb pages to find matching Ether buttons. The Ether buttons can bepresented together with links to the web pages that contain the Etherbuttons. Thus, the user can view the context of the Ether buttons andthen select a callee for the initiation of a request for real timecommunication connection.

For example, when a search criterion is received from a user in a searchfor a callee, the search can be formulated based on identifying therelevant web pages that contain embedded Ether buttons of callees. Whena web page matches the search criterion, the Ether button and/or thecallee of the Ether button that is embedded in the web page ispresented, with or without presenting the links to the web page.

For example, the directory of web pages with embedded Ether buttons canbe searched according to the search criterion to locate a set of webpages that best match with the user submitted search criterion. Sincethe web pages contain the corresponding Ether buttons, it is notnecessary to present the Ether buttons in the search result. Forexample, the search result may include a list of the web pages, rankedbased on the relevancy to the search criterion and statistics on theusage of the Ether buttons. The list may present the links to the webpages, statistics of the corresponding Ether buttons, relevant parts ofthe web pages that cause the web pages to be selected, and/or the Etherbuttons. In one embodiment, the list may further present listinginformation of the Ether buttons, such as the brief description providedby the callees for the Ether buttons, price packages for a period ofcommunication time with the callees, feedbacks/rating by previouscustomers of the callee, a logo or photo of the callee, a listing name,etc. Alternatively, the list may present the web pages without showingthe Ether buttons, since the user can readily access the Ether button byvisiting the presented web pages.

Alternatively, a search engine can present a list of Ether buttons thatrepresent the callees based on the search result of matching web pageswithout presenting the links to the matching web pages. Thus, the searchengine can be used to search the web for callees that satisfy certainrequirements. For example, a user may search for a blogger on a specifictopic for a conversation. For example, a user may search an advertiserwhich is willing to provide valuable advice on a topic for a fee.

In one embodiment, the search is limited to callees who are reachablevia the connection provider. Thus, from the search result, the user caneasily initiate a connection for real time communication with a callee,if the user is interested in a web page.

Alternatively, the search may not be limited to web pages that containEther buttons. When the web page does contain an Ether button, the Etherbutton is presented with the search result for convenient access.

In one embodiment, an Ether button is used for requesting a phoneconnection via a callback. Alternatively or in combination, an Etherbutton can be used for requesting a web page to set up a VoIP based callvia the connection provider. Alternatively or in combination, an Etherbutton can also be used for requesting a connection through a connectionprovider for communications in email, SMS, and/or instant messaging; andan instant messaging session can support communications in text, image,voice, and/or video.

For example, an Ether button may be used to request a connection for asession of real time communication (e.g., application sharing, orinstant messaging); and the communication session is bridged by theconnection provider to the callee. For example, an Ether button may beused to request a reference for the initiation of an instant messagingsession or a VoIP based call. For example, an Ether button may be usedto request a session initiation protocol (SIP) uniform resourceidentifier (URI) (e.g., a SIP phone number), which when obtained can beused to initiate a VoIP based phone call via the connection provider. Inone embodiment, an Ether button may be used to selection one from aplurality of available communication channels (e.g., email, SMS,callback, IM, VoIP, etc.) or a combination of the channels. In oneembodiment, the availability indicators of channels are obtained from aweb site of the connection provider when the Ether button is rendered ina web browser. Alternatively, different Ether buttons may be providedfor accessing a callee via different communication channels.

In one embodiment, listing information for the Ether buttons assigned tothe callees can also be collected from the callees. For example, torequest for an Ether button, the callee may be prompt to provide a briefdescription of what the callee would offer to sale over thecommunication link established via the Ether button, a photo or logo ofthe callee, and/or one or more categories, etc. A search can be based onboth the web pages that contain the Ether buttons and the listinginformation of the Ether buttons.

In one embodiment, a directory of Ether buttons is generated primarilybased on the listing information received from the callees. Whenpresenting the listings, links to the web pages that contain the Etherbuttons are also provided. Thus, a caller can visit the relevant webpages to obtain more information related to the callee.

In one embodiment, a directory of Ether buttons/Ether listings isgenerated based on searching the database of web pages using apre-determine search criterion (or a search request received from acaller). For example, the directory can show a list of Ether buttons fora particular category, with selected portions of web pages and/orlisting information of the Ether buttons highlighted in the list.

In another embodiment, the Ether buttons are not separately presented inthe search result. When a searcher sees the results of a query,selecting one of the results (e.g., via a click) causes the browser toload the web page which contains the Ether button. The search can readthe web page and select the Ether button embedded in the web page if acommunication connection to the callee is desired.

In one embodiment, the directory data collected via referring URL ofEther buttons is used to facilitate the search of callees, where calleesare at least partially characterized by the descriptions presented inthe web pages that contain the Ether buttons for the correspondingcallees. The search result may present the photos/logos of the callees,the Ether buttons, matching portions of the web pages and the links tothe web pages.

In one embodiment, the Ether buttons and/or the web pages containing theEther buttons are ranked based on the degree of matching to thesearching criterion and the statistic data collected based on the usageof the communication references. FIG. 18 illustrates statistic datacollected to facilitate searches according to one embodiment.

For example, in one embodiment, the number of downloads/presentations(1051) of a web page that contains an Ether button is tracked viareferring URL. When a web page containing the Ether button is loadedinto a browser, the real time availability of the callee is obtained viathe communication reference; and the real time availability is used todetermine an appearance of the Ether button. The browser sends thereferring URL to obtain the real time availability information. Thus,the number of downloads/presentations (1051) of the web page thatcontains an Ether button can be tracked.

When the Ether button is selected by the caller to request for a realtime communication connection, the communication reference is sent bythe browser to the connection provider (e.g., to request the web pagethat contains the call graph for collecting the call back contact of thecaller). Thus, the number of calls (1053) generated from thepresentation of the web page that contains the Ether button can betracked. Further, the connection provider can track the number ofsuccessful phone connections (1055) made via the Ether button containedin the web page.

In one embodiment, the connection provider can monitor the communicationconnections to determine average call time (1057) for calls connectedvia the Ether button contained in the web page, the average cost of thecalls (the fees charged to the caller by the callee for thecommunication time), the number of repeated/revisit calls (1059) via theEther button contained in the web page, customer feedback (1061) forcalls connected via the Ether button contained in the web page, etc.

Based on the statistic data, the connection provider can determine orestimate the likelihood of availability of callees in view of pastsuccessful rate in reaching the callees, and/or the conversion rate,such as the ratio between a count of presentation of the web pages andrequests for connections generated from the presentation of the webpages, or the ratio between a count of presentation of the web pages andestablished connections resulted from the presentation of the web pages,etc.

Using the directory data and the call statistics, the web pages can beindexed, searched and sorted for locating persons or entities which arereachable at least via the connection provider.

FIG. 19 illustrates a method to facilitate searches according to oneembodiment. In FIG. 19, a request related to a real time communicationconnection is received (1071) via a communication reference embedded ina web page. In one embodiment, the communication reference has beenassigned to represent, or associated with, the contact information of acallee; and the reference can be used to request a connection for realtime communication with the callee. Data is stored to associate (1073)the communication reference and the web page (e.g., based on thereferring URL). Statistic data related to the communication referenceembedded in the web page is collected (1075). In response to a searchrequest, a search is performed (1079) based on the data stored toassociate the communication reference and the web page and the statisticdata collected.

In one embodiment, a web page is presented to collect call backinformation from a caller in response to the request related to the realtime communication connection. A real time communication contact of thecallee, such as a telephone reference, is determined based on thecommunication reference. And, the real time communication connection isestablished via calling back the caller using the collected call backinformation and call the callee separately using the real timecommunication contact of the callee determined based on thecommunication reference.

In one embodiment, the real time communication connection is establishedvia: making a first telephone connection to the caller using the callback information; making a second telephone connection to the calleeusing the telephonic reference; and joining the first and secondtelephone connections to connect the caller and the callee. In oneembodiment, at least one of the first and second telephone connectionsis at least partially via Voice over Internet Protocol (VoIP).

In one embodiment, the request related to the real time communicationconnection includes a Universal Resource Locator (URL) of the web pageas a referring URL; and the data stored to associate the communicationreference and the web page includes the URL of the web page. In oneembodiment, the web page is further obtained using the URL to index theweb page in association with the communication reference or to index thecommunication reference in association with the web page.

In one embodiment, statistic data related to real time communicationrequests made via the communication reference embedded in the web pageand/or statistic data related to real time communication connectionsmade via the communication reference are collected. For example, thecollected statistic data may includes an average communication timeduration per connection established via the communication reference, anaverage fee charged by the callee per connection established via thecommunication reference, a rate of repeated communication requests,and/or a rate of success connections to the callee among connectionrequests. In one embodiment, the statistic data is used to rank the webpages or the communication references in the search result.

In one embodiment, the number of downloads of the web page is determinedbased on embedding the communication reference in the web page; and arate of communication requests generated from downloads of the web pageis further determined.

In one embodiment, a real time availability of the callee is determinedin response to the request; and the referring URL for the determinationof the real time availability is used to count the number of downloadsor presentations of the web page.

In one embodiment, the determination of whether or not to include thecommunication reference in a response to the search request is madebased at least partially on the data stored to associate thecommunication reference with the web page.

In one embodiment, when the communication reference is included in theresponse to the search request, a Universal Resource Locator (URL) ofthe web page is provided together with the communication reference.

In one embodiment, a plurality of web pages are ranked according to atleast statistic data related real time communication requests made viacommunication references embedded in the web pages, in response to thesearch request.

FIG. 20 illustrates an example to facilitate searches according to oneembodiment. In FIG. 20, communication contact information (e.g., atelephone number) is obtained (1101) from callees. The telephone numbermay be a plain old telephone number that can be dialed on a plain oldtelephone system, or a VoIP-based telephone number, such as a sessioninitiation protocol (SIP) uniform resource identifier (URI). In oneembodiment, the communication contact information can be used toestablish a connection to the callee for real time communication invoice, text, image, audio and/or video. For example, the communicationcontact information can be used to establish an instant messagingsession for application sharing and/or chat in text, voice, and/orvideo.

Communication references are then assigned (1103) to the callees for thecorresponding communication contact information. The communicationreferences are embedded (1105) in documents for distribution to callers.The documents are downloaded (1107) into browsers for rendering. Whendocuments are rendered in the browsers, requests for real timeinformation about the callees are received (1109) from the browsers viathe communication references. For example, the documents can beconfigured to causes the browsers to request information on availabilityof the callees during the rendering of the documents. In one embodiment,the information on availability is presented on an icon for requestingthe real time communication connection with the callees. Alternativelyor in combination, other types of information, such as pricing, userfeedback, etc., can also be requested.

Since the request for such real time information is related to thepresentation or download of the document, statistic information relatedto the presentation of the documents in the browsers can be collectedand stored. (1111).

After receiving (1113) the requests for real time communicationconnection with the callees (e.g., phone connection) via thecommunication references (e.g., when the user selects the icons forrequesting a callback), the statistic information related to therequests for connections via the documents can be collected and stored(1115).

In response to the requests for real time communication connection, thecommunication connections are provided (1117) using the communicationcontact information that have been obtained (1101) from the callees. Inone embodiment, the communication contact information is looked up froma database according to the communication references. Alternatively, thecommunication references may include an encoded/encrypted version of thecommunication references, which can be decoded/decrypted without relyingupon a database.

In FIG. 20, directory data are stored (1119) to correlate the documentsand the communication references (callees), based on the referring URLfor the requests received via the communication references. Further,statistic data related to the real time communication connectionsbetween the callers and the callees are stored (1121).

In FIG. 20, when a search request is received (1123), a search isperformed (1125) using at least the directory data and statistic datarelated to the requests received via the communication references. Forexample, the search result may be limited to the documents that containat least one assigned communication reference; and the search result maybe sorted based at least in part on the statistic data related to thepresentation of the documents in the browsers, the statistic datarelated to requests for connections via the documents, the statisticdata related to real time communication connections between the callersand the callees, etc. A response to the search request then is generated(1127) to include a list of search results. The search results mayinclude the matching communication references and/or references to thematching documents that include communication references.

FIG. 16 shows a block diagram example of a data processing system whichmay be used with various embodiments.

While FIG. 16 illustrates various components of a computer system, it isnot intended to represent any particular architecture or manner ofinterconnecting the components. Other systems that have fewer or morecomponents may also be used.

In FIG. 16, the communication device (951) is a form of a dataprocessing system. The system (951) includes an inter-connect (952)(e.g., bus and system core logic), which interconnects amicroprocessor(s) (953) and memory (958). The microprocessor (953) iscoupled to cache memory (954) in the example of FIG. 16.

The inter-connect (952) interconnects the microprocessor(s) (953) andthe memory (958) together and also interconnects them to a displaycontroller and display device (957) and to peripheral devices such asinput/output (I/O) devices (955) through an input/output controller(s)(956). Typical I/O devices include mice, keyboards, modems, networkinterfaces, printers, scanners, video cameras and other devices whichare well known in the art.

The inter-connect (952) may include one or more buses connected to oneanother through various bridges, controllers and/or adapters. In oneembodiment the I/O controller (956) includes a USB (Universal SerialBus) adapter for controlling USB peripherals, and/or an IEEE-1394 busadapter for controlling IEEE-1394 peripherals.

The memory (958) may include ROM (Read Only Memory), and volatile RAM(Random Access Memory) and non-volatile memory, such as hard drive,flash memory, etc.

Volatile RAM is typically implemented as dynamic RAM (DRAM) whichrequires power continually in order to refresh or maintain the data inthe memory. Non-volatile memory is typically a magnetic hard drive, amagnetic optical drive, or an optical drive (e.g., a DVD RAM), or othertype of memory system which maintains data even after power is removedfrom the system. The non-volatile memory may also be a random accessmemory.

The non-volatile memory can be a local device coupled directly to therest of the components in the data processing system. A non-volatilememory that is remote from the system, such as a network storage devicecoupled to the data processing system through a network interface suchas a modem or Ethernet interface, can also be used.

In one embodiment, a server data processing system as illustrated inFIG. 16 is used as one of the communication server(s) (e.g., 929, 925,and/or 921 in FIG. 15, 1013 in FIG. 17).

Further, a user terminal as a client system can be a data processingsystem similar to the system of FIG. 16. A client system can be in theform of a PDA, a cellular phone, a notebook computer or a personaldesktop computer. For example, the I/O devices of the user device mayinclude a USB phone, a Bluetooth wireless phone, or one or more speakersor headphones with one or microphones for the implementation of asoftware based phone.

Alternatively, the traditional communication client(s) may be used insome embodiments.

From this description, it will be appreciated that certain aspects areembodied in the user devices, certain aspects are embodied in the serversystems, and certain aspects are embodied in a system as a whole.

Embodiments can be implemented using hardware, programs of instruction,or combinations of hardware and programs of instructions.

In one embodiment, a connection provider uses a connection serverconfigured on a packet switched network to provide telephone connectionsbetween callers (e.g., customers) and callees (e.g., advertisers), asillustrated in FIG. 21. In FIG. 21, the connection server (2107)receives and/or places telephone calls via the telecommunication carrier(2105) over the packet switched network (2109). The telecommunicationcarrier (2105) further routes the telephone communications towards thecaller (2101) and the callee (2103).

Since the telecommunication carrier (2105) can route a call from apacket switched network to a variety of destinations (e.g., atraditional analog telephone set, a mobile phone, a cellular phone, aWiFi phone, a Bluetooth phone, a softphone running on a computer, etc.),the connection sever (2107) can use one type of communication connectionwith the telephone carrier (2105) to facilitate the communicationconnections with variety of devices used by the customers (e.g., callersand callees). Thus, the implementation of the connection server (2107)can be simplified. In one embodiment, the connection server (2107) canalso place and/or receive direct VoIP calls to/from the caller (orcallee).

For example, to make a voice connection in response to a click-to-callrequest, the connection server can place separate VoIP calls, via thetelecommunication carrier (2105), to the caller (2101) (e.g., therequester of the click-to-call) and the callee (2103) (e.g., thedestination of the click-to-call request).

If the caller (2101) (or the callee 2103) is on a public switchedtelephone network (PSTN), the telecommunication carrier (2105) bridgesthe packet switched the network and the public switched telephonenetwork (PSTN). The telecommunication carrier (2105) routes the callfrom the packet switched network (2109) to the caller (2101) (or thecallee 2103) on the circuit switched network. Thus, the caller (2101)(or the callee 2103) can use a telephone set to receive the call via aPlain Old Telephone Service (POTS). The connection server (2107) joinsthe separate calls that are placed via the packet switched network(2109) to connect the callee (2103) and the caller (2101).

In one embodiment, call signaling and media content may use differentnetwork paths. While call signaling is arranged to go through the packetswitched network (2109) and the connection server (2107), the mediastream does not have to go through the connection server (2107). Forexample, when the calls are joined, the media content may be redirectedto flow over the communication carrier (2105) without going through thepacket switched network (2109) to the connection server (2107) forimproved performance and efficiency. The connection server (2107) canrelease the control over the media stream to allow the media stream toflow through the shortest path, without going through the connectionserver, while maintaining control to the connection for the call bystaying on the path for call signaling.

In another example, when the caller (2101) initiates a call over a PSTNto the connection server (2107), the telecommunication carrier (2105)converts the call for the packet switched network (2109) for theconnection server (2107).

In one embodiment, virtual softphones on the telecommunication carrier(2105) are assigned to the caller (2101) and the callee (2103) forinterfacing with the connection server (2107) over the packet switchednetwork (2109). The virtual softphones encapsulates the devices andnetworks used by the caller (2101) and callee (2103) to access theconnection server (2107); and the telecommunication carrier (2105)shields the connection server (2107) from the implementation details ofthe user devices and networks used by the caller (2101) and the callee(2103). The connection server (2107) calls (or receives calls from) andconnects the virtual softphones on the telecommunication carrier (2105)to connect the caller (2101) and the callee (2103).

In FIG. 21, the telephone connection between the telecommunicationcarrier (2105) and the connection server (2107) is facilitated via apacket switched network (2109). Thus, the connection server (2107) canoperate efficiently in a digital domain. The connection server (2107)interfaces with the telecommunication carrier (2105) using one type ofInternet Telephony systems (e.g., SIP-based Internet telephony).

Alternatively, a connection server may include some or all of thefunctionality of the telecommunication carrier (2105). For example, theconnection server may be configured to bridge a packet switched networkand a circuit switched network. The connection server may supportmultiple, different types of Internet Telephony systems.

In one embodiment, the connection server (2107) and thetelecommunication carrier (2105) are operated by different, separateentities. Alternatively, the connection server (2107) and thetelecommunication carrier (2105) may be operated by the same entity. Inanother embodiment, the telecommunication carrier (2105) includes a setof facilities operated by a number of separate entities.

In one embodiment, the caller (2101) and/or the callee (2103) may alsoplace/receive calls via a packet switched network. The telecommunicationcarrier (2105) may route the calls between the caller (2101) and thecallee (2103) without using a PSTN. In one embodiment, caller (2101)and/or the callee (2103) may place calls to or receive calls from theconnection server (2107) via Internet.

FIG. 22 shows a connection server according to one embodiment. In FIG.22, the connection server (2205) is configured to place and/or receiveVoIP calls using Session Initiation Protocol (SIP). A session bordercontroller (2201) is used to interface with the packet switched network(2203) and control the types of network traffic related to VoIP callsthat might go into the connection server (2205).

In one embodiment, the session border controller (2205) is configured tocontrol the signaling and media stream during the setting up, conductingand tearing down of VoIP calls to or from the connection server (2205).In some embodiments, the session border controller (2205) may pick upthe call that comes to the session border controller (2205), places aseparate call from the session border controller (2205), and joins thereceived call and the placed call to control both the signaling andmedia stream. In some embodiments, the session border controller (2205)may perform signaling/encoding translation to allow the connectionserver (2205) to process the VoIP calls in one standard, while receivingVoIP calls in a variety of standards (e.g., SIP, H.323, etc.). In oneembodiment, the session border controller (2205) is configured toperform one or more firewall functionalities, such as denial of serviceprotection, call filtering, bandwidth management, etc.

In one embodiment, the session border controller (2205) is configured toperform media releasing operation. When the session border controller(2205) determines that the source and destination of a media stream ison the same side of the session border controller (2205) (e.g., both thesource and the destination of the media stream is outside the connectionserver 2205), the session border controller (2205) can release thehairpinning of the media stream and allow the media stream to flowwithout going through the session border controller (2205).

In FIG. 22, a set of SIP servers (e.g., 2211, 2213, . . . , 2219) arenetworked to the session border controller (2201) to receive messagesfor incoming calls and to initiate outgoing calls. The session bordercontroller (2201) is configured to evenly distribute the calls forprocessing by the SIP servers.

For example, when an incoming message for the initiation of a call isreceived (e.g., a SIP INVITE message from the telecommunication carrier2105), the session border controller (2201) may route it to a SIP server(e.g., 2211) for processing. The INVITE message includes the phonenumber dialed by the caller and the contact information about the caller(e.g., the phone number of the caller 2101 and/or the identity of thevirtual SIP phone at the telecommunication carrier 2105).

The SIP server may determine whether the phone number dialed by thecaller (2103) is sufficient to determine the phone number of the callee(e.g., 2103). If the phone number of the callee (e.g., 2103) can bedetermined from the phone number dialed by the caller (2103) (e.g., viadecoding the phone number dialed by the callee, or looking up the phonenumber of the callee from a table using the phone number dialed by thecaller as a key), the SIP server can place a separate SIP call to thecallee via the packet switched network (2203) and then connect thecaller and the callee. Alternatively, the SIP server can further routethe SIP INVITE message (e.g., to the telecommunication carrier (2105) todirect the call to the callee. For example, the SIP server may modifythe INVITE message by replacing the destination with the determinedphone number of the callee. Further, the SIP server can modify theINVITE message by removing the phone number of the caller (or replacingthe phone number of the caller with a phone number of the connectionserver). In one embodiment, the modified INVITE message identifies thevirtual softphone corresponding to the caller on the telecommunicationcarrier as the SIP phone initiated the call; thus, the virtual softphonecorresponding to the callee on the telecommunication carrier canestablish media connection with the virtual softphone corresponding tothe caller on the telecommunication carrier directly. Alternatively, themodified INVITE message may identifies a media server (2221) (or avirtual softphone on SIP server) as the initiator for a separate call.The SIP server then connects the calls for the media stream.

In one embodiment, the caller is first connected to a media server(e.g., 2221, 2223, or 2229). For example, the SIP server may forward theSIP INVITE message to one or more of the media servers for answering thecall. When a media server (e.g., 2221) answers the call, a prompt isplayed to the caller by the media server. The media server may includean Interactive Voice Response (IVR) system, or be connected to an IVRsystem, to obtain input from the caller.

For example, the media server may prompt the caller to enter theextension assigned to the callee, such that the phone number of thecallee can be determined based on the phone number including theextension dialed by the caller. In some embodiments, the extensiondialed by the caller is sufficient to determine the phone number of thecallee. After the phone number of the callee is determined, the SIPserver can further connect the call to the callee.

For example, the media server can send a message to the SIP server. Themessage identifies the call and the extension obtained from the caller.The SIP server then determines the callee's phone number based at leaston the extension received from the media server and initiates a SIP callvia the packet switched network (2203) (e.g., by sending a SIP INVITEmessage to the telecommunication carrier 2105, which further bridges thecall to the callee 2103). Then, the SIP server disconnects the mediaserver from the call and reconnects the call to the callee.

For example, the SIP server can send a SIP BYE message to the mediaserver to disconnect the media server from the call (e.g., by sending a“BYE” message to the media server for the call) and send a re-INVITEmessage towards the caller to connect the caller and the callee.Alternatively, the media server may send a SIP BYE message to the SIPserver for the call; the BYE message may include the extension obtainedfrom the caller; in response to the BYE message that contains theextension, the SIP server determines the phone number of the callee andfurther connects the caller to the callee.

In one embodiment, the SIP server can direct the caller and the calleeto connect to each other for the media stream without having the mediastream going through the session border controller (2201) into theconnection server (2205). For example, the media stream can go throughthe telecommunication carrier (2105) in FIG. 21 without going to theconnection server (2107) after the SIP server connects the caller andthe callee.

However, the SIP server stays on the signaling path to monitor theprogress and termination of the call. The SIP server can also break theconnection between the caller and the callee, or force the media streamto come through the connection serve (2205). For example, the SIP servermay selectively conference a media server into the call to monitorand/or record the communication of the call between the caller and thecallee. For example, the SIP server may reconnect the caller and thecallee to separate media servers for interaction with an IVR system or ahuman operator to confirm a deal or transaction.

Similarly, the SIP server may initiate a callback to a caller via a SIPcall over the packet switched network (2203) for a connection to thecaller. The SIP call may be bridged onto a circuit switched network(e.g., by a telecommunication carrier 2105). The SIP server can thenreconnect the call to a media server for sending a prompt to the callerbefore reconnect the call to the callee. Alternatively, the callback canbe initiated from a media server; and the call signaling (e.g., theINVITE message from the media server) goes through the SIP server forcall control. Alternatively, the SIP server sends out the INVITE messageon behalf of the media server.

In one embodiment, the SIP servers (2211, 2213, . . . , 2219) and mediaservers (2221, 2223, . . . , 2229) are implemented on separate computersconnected via a local area network (and/or intranet or Internet).Alternatively, at least the some of the servers can be implemented on asame computer. In one embodiment, the SIP servers and the media serversare also integrated with the session border controller (2201) on a samedata process system having multiple processors coupled with a data bus.In one embodiment, the SIP servers are coupled to the media servers viaa network; and a SIP server may use any of the available media serverfor interaction with the caller (or callee). Alternatively, a SIP servermay be configured to use one or more of media servers that are notshared by other SIP server. For example, a SIP server may be implementedon a same data processing system with one or more media servers whichare reserved for the SIP server.

In one embodiment, the connection server (2205) may further include adatabase server (2205) to storing records related to the calls, datamapping between the communication references assigned to the callees andthe actual phone numbers of the callees, etc. In one embodiment, contactmapping are cached in the local memory (e.g., RAM) of the servers forimproved performance; and the cached mapping is updated when thedatabase is updated.

In one embodiment, an Ether button or phone number assigned to anadvisor is associated with one or more keywords. The advisor can placebids on the keywords. When a keyword is searched, the Etherbutton/number having the highest bid on the keyword is presented. In oneembodiment, the Ether buttons/numbers that match the keyword are rankedbased at least in part on the bids on the keywords; and the ranked Etherbuttons/numbers are selectively presented in the search result. In oneembodiment, the bids and the prices charged by the advisors are used toestimate the earning potentials for presenting the Etherbuttons/numbers; and the Ether buttons/numbers that match the keywordsare presented in an order according to the estimated earning potentials,which may include the consideration of the conversion ratio between thepresentations of the Ether buttons/numbers and the customer callsgenerated from the presentations, an average customer spending on theadvisor, and/or the rate of returning customers to the advisor.

FIG. 23 shows a diagram of a system to facilitate searches according toone embodiment. In FIG. 23, a communication reference A (1023) isassigned to the advisor (2325) for distribution in a document (1001) ofthe advisor (2325). The document may be an email from the advisor(2325), a web home page of the advisor (2325), a blog page of theadvisor (2325), or a business card of the advisor (2325), etc.

In FIG. 23, the communication reference A (1023) may be a link to a callbutton assigned to the advisor (2325) and/or a telephone number of theadvisor (2325). The telephone number may or may not have an extension,may be a toll free telephone number or a telephone number local to abusiness location of the advisor, or a session initiation protocol (SIP)uniform resource identifier (URI), or a Voice over Internet Protocol(VoIP) user identifier.

For example, when the communication reference A (1023) includes a linkto a call button assigned to the advisor (2325), the advisor (2325) canembed the link in the web page (1001) for presentation to the customer(2321). When the link to the call button is rendered in the web page(1001), the connection provider (1013) provides information about thebutton having a text portion (1005) and an image portion (1003). In someembodiments, the text portion or the image portion may be not shown. Inone embodiment, at least one of the text portion (1005) and the imageportion (1005) can be used to provide an indication of real timeavailability status of the advisor (2325) for real time communicationwith the customer (2321). In one embodiment, the availability status ofthe advisor (2325) for real time communication is determined based atleast in part on comparing the time the call button is requested and apre-scheduled callable period of the advisor (2325). For example, theadvisor (2325) may specify a daily (or weekly or monthly) schedule whichindicates the time period outside which the advisor (2325) is notwilling to take calls from customers. For example, the advisor (2325)may directly specify whether the advisor (2325) is currently availableto take calls from customers (e.g., via a web interface or a telephoneportal of the connection provider).

In FIG. 23, the communication reference (1031) is associated with thecontact information (1033) of the advisor in the contact data (1017)maintained by the connection provider (1013). When the connectionprovider (1013) receives a request for a connection to the advisor viathe communication reference (1031) that is assigned to the advisor(2325), the connection provider (1013) connects the customer (2321) tothe advisor (2325) without revealing the contact information (1033) tothe customer (2321).

In FIG. 23, the connection provider (1013) also maintains directory data(1019) which may include a keyword (2301) associated with thecommunication reference (1023), the bid price (2303) of the keyword(2301), call statistics (1027), etc. The directory data (1019) mayfurther include a description, a title, customer feedback, a customerrating of the advisor, etc.

In FIG. 23, the directory data (1019) also includes a referring URL(1021) which contains an address of the web page (1001) in which theadvisor (2325) has placed the link to the call button (1003). Thedirectory data (1019) may further include a cached portion of the webpage (1001).

In FIG. 23, the directory data (1019) is used to facilitate the searchfor communication references of the advisors.

In one embodiment, after a search request is received (e.g., via a webserver of the connection provider), the directory data (1019) issearched to find communication references that have associated keywordsthat match the search request. The matching communication references canbe sorted or ranked according to the directory data (1019) to prioritiesthe presentation of the matching communication references.

For example, the connection provider (1013) may present one or morecommunication references that are ranked in the top based on their bidprices. For example, the connection provider (1013) may present one ormore communication references that are ranked in the top based onestimated earning potentials.

In one embodiment, the connection provider (1013) can charge theadvisors based on the bid prices they placed on the keywords when thecommunication references presented in the search result are called. Inone embodiment, the connection provider (1013) can charge the advisorsbased on the bid prices they placed on the keywords when thecommunication references are presented in the search result. Theconnection provider (1013) can further charge the advisors a commissionfee based on the prices the advisors specified to charge the customersfor real time communications with the advisors. Based on the likelihoodof a presentation of the communication reference being converted into achargeable event, the connection provider (1013) can estimate theearning potential of the presentation of the communication referencesand prioritize the presentation of the communication referencesaccording to their earning potentials.

In FIG. 23, the search result (2309) presented via a web server of theconnection provider (1013) includes a call button having a text portion(2307) and an image portion (2305) to indicate the availability of theadvisor at the time of the search result (2309). The search result(2309) further includes a phone number (2313) which can be used by thecustomer (2321) to reach the connection provider (1013) via a plain oldtelephone set to request a telephone connection to the advisor (2325).The search result (2309) further includes a link (2311) which can beselected by the customer (2321) to visit the web page (1001) of theadvisor (2325). The search result (2309) may further include the briefdescription provided by the advisors for the Ether buttons, pricepackages for a period of communication time with the advisors,feedbacks/rating by previous customers of the advisor, a logo or photoof the advisor, a listing name, a link to the web page (1001), etc.

In on embodiment, the call button may be associated with multiplekeywords with different bid prices; and the bid prices may be changed bythe advisor (2325). The call button (2307 and 2305) can further includeone or more parameters to specify the keyword responsible for theselection of the call button for presentation and the bid price of thekeyword at the time the call button is selected for presentation. Whenthe call button is selected, the parameters are also transmitted to theconnection provider to identify the keyword and bid price. For example,in one embodiment, the bid price is a maximum bid, which is to bedetermined according to the bid price of the next competitor who has abid on the same keyword. For example, the advertisement fee is chargedbased on the bid prices of the keyword at the time of the presentationof the call button. Alternatively, the advertisement fee can be chargedbased on the bid prices of the keyword at the time the call button isselected by the customer (2321) for a connection to the advisor (2325).

In one embodiment, the ether number (2313) presented in the searchresults includes addition digits to track the keyword and/or bid prices.

In one embodiment, the system uses the tracked information about thekeywords to determine the conversion rate of the presentations of thecall button (and/or the assigned telephone numbers) for specifykeywords. The conversion rate can be used to improve the accuracy inestimating the earning potential of a presentation.

In one embodiment, the keyword (2301) is extracted from the web page(1001) which includes the call button (1003) embedded by the advisor(2325). Alternatively, the advisor (2325) may separately select thekeywords independently on the web page (1001) while placing the bids onthe keywords.

In one embodiment, when the search result includes an advisor that doesnot provide the bid price (2303) (e.g., the bid price is zero or below athreshold), the search result is presented to include a link to the webpage of the advisor based on the referring URL, without directlypresenting the call button or the ether number. Thus, the search resultindirectly presents the communication reference assigned to the advisorvia a link to the web page of the advisor which contains thecommunication reference assigned to the advisor. Alternatively, thesearch result may also directly present the communication referenceassigned to the advisor.

FIG. 24 shows a method to facilitate the search of communicationreferences according to one embodiment. In FIG. 24, a communicationreference is assigned (2401) to an advisor for distribution by theadvisor in one or more documents, such as a business card, an email fromthe advisor, a blog of the advisor, or a web home page of the advisor.The communication reference is to be used by customers of the advisor torequest for connections to the advisor for real time communications withthe customers of the advisor. The communication reference may be atelephone number of a connection provider, a session initiation protocol(SIP) uniform resource identifier (URI), a Voice over Internet Protocol(VoIP) user identifier of the connection provider, or a link to a serverof the connection provider.

In FIG. 24, at least one keyword is associated (2403) with thecommunication reference; and a bid price is received (2405) from theadvisor on the keyword associated with the communication reference. Inresponse to a search related to the keyword, the communication referenceis selected (2407) for presentation based at least in part on the bidprice.

In one embodiment, responsive to a request received via thecommunication reference from a customer for a communication connectionto the advisor, contact information of the advisor is determined basedon the communication reference; and the customer is connected to theadvisor for real time communications using the contact informationdetermined based on the communication reference.

In one embodiment, it is determined whether the request is received viaa presentation of the communication reference as a result of the search.For example, when the referring URL of the call button selected is asearch result, the request can be determined as a result of the search.For example, the ether phone number presented in the search result mayinclude one or more extra digits of extension to indicate that the etherphone number is a result of the search. In response to a determinationthat the request is received as a result of the search, charging theadvisor a fee based on the bid price per connecting the customer to theadvisor for real time communications via the communication reference.The advisor is not charged the fee when the request is received as aresult of a presentation of the communication reference in the one ormore documents distributed by the advisor.

In one embodiment, the advisor is charged a fee based on the bid priceper connecting the customer to the advisor for real time communicationsvia the communication reference. In one embodiment, the bid price is amaximum bid; and the fee is determined based on the bid price and a bidprice on the keyword by a competitor of the advisor.

In one embodiment, a connection provider charges the customer on behalfof the advisor for services delivered by the advisor over a connectionestablished between the customer and the advisor via the communicationreference assigned to the advisor.

In one embodiment, a connection provider establishes a first Voice overInternet Protocol (VoIP) connection to connect to the customer using thecommunication reference, determines contact information of the advisorbased on the communication reference used to establish the first VoIPconnection, establishes a second Voice over Internet Protocol (VoIP)connection to connect to the advisor using the contact information ofthe advisor, and bridges the first and second VoIP connections toconnect the customer and the advisor. In one embodiment, a mediaconnection that does not go through the connection provider isestablished to connect the customer and the advisor for telephonecommunications.

In one embodiment, information to present the communication reference isprovided in a document that shows the result of the search. Theinformation to present the communication reference may further includean indicator of availability of the advisor for real time communicationswith customers at a time the information is provided, a price specifiedby the advisor for charging customers for real time communications withthe advisor, and/or a link to the one or more documents distributed bythe advisor. In one embodiment, the indicator of availability is basedon a scheduled time period.

In one embodiment, the communication reference is associated with anaddress of the one or more documents of the advisor in responsive to thecommunication reference in the one or more documents being selected torequest for a communication connection with the advisor; and the linkincludes a reference to the address of the one or more documents.

In one embodiment, the communication reference is further selectedaccording to an average communication time duration per connectionestablished via the communication reference, an average fee charged bythe advisor per connection established via the communication reference,a rate of repeated communication requests, or a rate of successconnections to the advisor among connection requests.

In one embodiment, a system includes: one or more web servers to assigna communication reference to an advisor for distribution by the advisorin one or more documents, to associate at least one keyword with thecommunication reference, to receive from the advisor a bid price on thekeyword associated with the communication reference, and to present thecommunication reference selected based at least in part on the bid pricein response to a search related to the keyword; a session bordercontroller to interface with a packet switched network; one or moretelecommunication servers coupled to the session border controller andthe one or more web servers to determine contact information of theadvisor based on the communication reference used by a customer torequest a communication connection to the advisor, and to connect thecustomer to the advisor for real time communications using the contactinformation determined based on the communication reference.

In one embodiment, the one or more telecommunication servers are toestablish a first Voice over Internet Protocol (VoIP) connection toconnect to the customer using the communication reference, establish asecond Voice over Internet Protocol (VoIP) connection to connect to theadvisor using the contact information of the advisor and to bridge thefirst and second VoIP connections to connect the customer and theadvisor.

In one embodiment, the one or more web servers are to further determinean address of the one or more documents in response to the communicationreference being selected from the one or more documents distributed bythe advisor and to present a link to the address with the communicationreference as a result of the search.

In general, routines executed to implement the embodiments may beimplemented as part of an operating system or a specific application,component, program, object, module or sequence of instructions referredto as “computer programs.” The computer programs typically comprise oneor more instructions set at various times in various memory and storagedevices in a computer, and that, when read and executed by one or moreprocessors in a computer, cause the computer to perform operationsnecessary to execute elements involving the various aspects.

While some embodiments have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that various embodiments are capable of beingdistributed as a program product in a variety of forms and are capableof being applied regardless of the particular type of machine orcomputer-readable media used to actually effect the distribution.

Examples of computer-readable media include but are not limited torecordable and non-recordable type media such as volatile andnon-volatile memory devices, read only memory (ROM), random accessmemory (RAM), flash memory devices, floppy and other removable disks,magnetic disk storage media, optical storage media (e.g., Compact DiskRead-Only Memory (CD ROMS), Digital Versatile Disks (DVDs), etc.), amongothers. The instructions may be embodied in digital and analogcommunication links for electrical, optical, acoustical or other formsof propagated signals, such as carrier waves, infrared signals, digitalsignals, etc.

A machine readable medium can be used to store software and data whichwhen executed by a data processing system causes the system to performvarious methods. The executable software and data may be stored invarious places including for example ROM, volatile RAM, non-volatilememory and/or cache. Portions of this software and/or data may be storedin any one of these storage devices.

In general, a machine readable medium includes any mechanism thatprovides (i.e., stores and/or transmits) information in a formaccessible by a machine (e.g., a computer, network device, personaldigital assistant, manufacturing tool, any device with a set of one ormore processors, etc.).

Some aspects may be embodied, at least in part, in software. That is,the techniques may be carried out in a computer system or other dataprocessing system in response to its processor, such as amicroprocessor, executing sequences of instructions contained in amemory, such as ROM, volatile RAM, non-volatile memory, cache or aremote storage device.

In various embodiments, hardwired circuitry may be used in combinationwith software instructions for implementation. Thus, the techniques arenot limited to any specific combination of hardware circuitry andsoftware nor to any particular source for the instructions executed bythe data processing system.

In this description, various functions and operations are described asbeing performed by or caused by software code to simplify description.However, those skilled in the art will recognize what is meant by suchexpressions is that the functions result from execution of the code by aprocessor, such as a microprocessor.

Although some of the drawings illustrate a number of operations in aparticular order, operations which are not order dependent may bereordered and other operations may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beapparent to those of ordinary skill in the art and so do not present anexhaustive list of alternatives. Moreover, it should be recognized thatthe stages could be implemented in hardware, firmware, software or anycombination thereof.

In the foregoing specification, the disclosure has been provided withreference to specific exemplary embodiments thereof. It will be evidentthat various modifications may be made thereto without departing fromthe broader spirit and scope as set forth in the following claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative sense rather than a restrictive sense.

1. A system, comprising: a memory; and a processor coupled to at leastthe memory and configured to: assign a communication reference to anadvisor for distribution by the advisor in a document, the communicationreference usable to request connections to the advisor for real timecommunications with the advisor, wherein the real time communicationswith the advisor comprise the advisor providing advice; associate akeyword with the communication reference; receive from the advisor a bidprice on the keyword associated with the communication reference;select, based at least in part on the bid price, the communicationreference for presentation in response to a search related to thekeyword, wherein the communication reference includes an indicator ofavailability of the advisor for the real time communications with theadvisor at a time corresponding to the presentation and a pricespecified by the advisor for charging for real time communications withthe advisor; responsive to a request from a customer using thecommunication reference, the request being for a communicationconnection to the advisor, determine contact information of the advisorbased on the communication reference; connect the customer to theadvisor for the real time communications with the advisor, using thecontact information determined based on the communication reference;determine whether the request from the customer is received via apresentation of the communication reference as a result of the search;and charge the advisor a fee based on the bid price per connecting,based at least in part on the communication reference, the customer tothe advisor for the real time communications with the advisor, inresponse to a determination that the request is received as a result ofthe search; wherein the advisor is not charged the fee when the requestfrom the customer is received as a result of a presentation of thecommunication reference in the document distributed by the advisor. 2.The system of claim 1, wherein the processor is further configured to:establish a first voice over Internet protocol connection to connect tothe customer using the communication reference; establish a second voiceover Internet protocol connection to connect to the advisor using thecontact information of the advisor; and bridge the first and secondvoice over Internet protocol connections to connect the customer and theadvisor.
 3. The system of claim 1, wherein the processor is furtherconfigured to: determine an address of the document in response to thecommunication reference being selected from the document distributed bythe advisor and to present a link to the address with the communicationreference as a result of the search.
 4. A method, comprising: assigning,using a computing device, a communication reference to an advisor fordistribution by the advisor in a document, the communication referenceusable to request connections to the advisor for real timecommunications with the advisor, wherein the real time communicationswith the advisor comprise the advisor providing advice; associating akeyword with the communication reference; receiving from the advisor abid price on the keyword associated with the communication reference;selecting, based at least in part on the bid price, the communicationreference for presentation in response to a search related to thekeyword, wherein the communication reference includes an indicator ofavailability of the advisor for the real time communications with theadvisor at a time corresponding to the presentation and a pricespecified by the advisor for charging for real time communications withthe advisor; responsive to a request from a customer using thecommunication reference, the request being for a communicationconnection to the advisor, determining contact information of theadvisor based on the communication reference; connecting the customer tothe advisor for the real time communications with the advisor, using thecontact information determined based on the communication reference;determining whether the request from the customer is received via apresentation of the communication reference as a result of the search;and charging the advisor a fee based on the bid price per connecting,based at least in part on the communication reference, the customer tothe advisor for the real time communications with the advisor, inresponse to a determination that the request is received as a result ofthe search; wherein the advisor is not charged the fee when the requestfrom the customer is received as a result of a presentation of thecommunication reference in the document distributed by the advisor. 5.The method of claim 4, further comprising: determining the fee based onthe bid price received from the advisor, and a bid price on the keywordby a competitor of the advisor.
 6. The method of claim 4, furthercomprising: charging the customer on behalf of the advisor for servicesdelivered by the advisor consequent to the connecting the customer tothe advisor for real time communications with the advisor.
 7. The methodof claim 4, wherein the communication reference comprises a telephonenumber of a connection provider, a session initiation protocol uniformresource identifier, or a voice over Internet protocol user identifierof the connection provider.
 8. The method of claim 4, furthercomprising: a connection provider establishing a first voice overInternet protocol connection to connect to the customer using thecommunication reference; the connection provider establishing a secondvoice over Internet connection to connect to the advisor using thecontact information of the advisor; and bridging the first and secondvoice over Internet protocol connections to connect the customer and theadvisor.
 9. The method of claim 8, wherein the bridging of the first andsecond voice over Internet protocol connections comprises establishing amedia connection that does not go through the connection provider toconnect the customer and the advisor for telephone communications. 10.The method of claim 4, wherein the document comprises a business card.11. The method of claim 4, further comprising: providing information topresent the communication reference in a document showing a result ofthe search.
 12. The method of claim 4, wherein the indicator ofavailability is based on a scheduled time period.
 13. The method ofclaim 11, wherein the information to present the communication referencefurther includes a link to the document distributed by the advisor. 14.The method of claim 13, further comprising: responsive to thecommunication reference in the document being selected to request for acommunication connection with the advisor, associating withcommunication reference with an address of the document; wherein thelink comprises a reference to the address of the document.
 15. Themethod of claim 4, wherein the communication reference is furtherselected according to a rate of successful connections to the advisoramong connection requests.
 16. The method of claim 4, wherein thedocument comprises an email from the advisor.
 17. The method of claim 4,wherein the document comprises a blog of the advisor.
 18. A tangiblenon-transitory machine-readable medium, storing instructions that, whenexecuted by a computing device, cause the computing device to perform amethod, the method comprising: assigning a communication reference to anadvisor for distribution by the advisor in a document, the communicationreference usable to request connections to the advisor for real timecommunications with the advisor, wherein the real time communicationswith the advisor comprise the advisor providing advice; associating akeyword with the communication reference; receiving from the advisor abid price on the keyword associated with the communication reference;selecting, based at least in part on the bid price, the communicationreferences for presentation in response to a search related to thekeyword, wherein the communication reference includes an indicator ofavailability of the advisor for the real time communications with theadvisor at a time corresponding to the presentation and a pricespecified by the advisor for charging for the real time communicationswith the advisor; responsive to a request from a customer using thecommunication reference, the request being for a communicationconnection to the advisor, determining contact information of theadvisor based on the communication reference; connecting the customer tothe advisor for the real time communications with the advisor, using thecontact information determined based on the communication reference;determining whether the request is received via a presentation of thecommunication reference as a result of the search; and charging theadvisor a fee based on the bid price per connecting, based at least inpart on the communication reference, the customer to the advisor for thereal time communications with the advisor, in response to adetermination that the request is received as a result of the search;wherein the advisor is not charged the fee when the request from thecustomer is received as a result of a presentation of the communicationreference in the document distributed by the advisor.